2016-08-01 2 views
1

Java SDKでcouchbase 4.0.1を使用しています。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を取得する場合 - 私は、サーバの問題が原因のレプリカが、先週、に行き、私達は私達のサーバーのいずれかからのOutOfMemory例外が発生しました。もちろん、私たちはレプリカからドキュメントを取得していないし、私たちはいくつかの例外を抱えていました。

例外の有無を確認するにはどうすればよいですか?常にレプリカに行く

おかげで、

イド

答えて

0

はもちろんのDocumentDoesNotExistExceptionのように、エラーのいくつかのクラスのために助けに行くのではありません。レプリカに行く、CouchbaseOutOfMemoryExceptionのように、クラスタ全体の問題が発生している可能性がある他の人のために

は、クラスタ上でより多くの圧力を置き、問題を悪化させる可能性がオプションしかしです。

戻って少し待ってからもう一度お試しください。

関連する問題