2016-08-01 129 views
1

我使用couchbase 4.0.1与Java SDK。Couchbase从副本

这是我的代码:

bucket.async() 
      .get(key) 
      .onErrorResumeNext(throwable -> { 
       if (throwable instanceof TimeoutException) { 
        return getBucket().async().getFromReplica(key, ReplicaMode.ALL); 
       } 
       return Observable.error(throwable); 
      }) 
      .map(doc -> doc.content()) 
      .toBlocking() 
      .singleOrDefault(null); 

如果我得到TimeoutException异常 - 我去副本,但上周,由于服务器的问题,我们从一台服务器有内存溢出的例外。当然,我们没有从副本中获得文档,我们遭受了一些例外。

我想知道是否应该去的任何例外副本吗?

感谢,

回答

0

总是将副本是不会帮助错误的一些类,像当然DocumentDoesNotExistException

对于其他人可能表明集群范围内的问题,像CouchbaseOutOfMemoryException,去副本是一个选项它可以把更多的压力在集群上,使问题变得更糟。

退后可能会更好,稍等一会再试。