Couchbase:无法发送请求,取消而不是重试

时间:2017-03-30 16:47:23

标签: java couchbase

在异步运行查询的情况下,客户端崩溃并显示错误:

com.couchbase.client.core.RequestCancelledException: Could not dispatch request, canceling instead of retrying.

连接设置:

final CouchbaseEnvironment env = DefaultCouchbaseEnvironment
  .builder()
  .queryEndpoints(1)
  .retryStrategy(FailFastRetryStrategy.INSTANCE)
  .build();

异步查询示例:

Observable<SiteData> dataList = bucket
  .async()
  .query(query)
  .flatMap(AsyncN1qlQueryResult::rows)
  .map(row -> new SiteData(row.value()));

1 个答案:

答案 0 :(得分:0)

原因是queryEndpoints设置为1,策略设置为FailFastRetryStrategy,因此,异步运行两个请求将失败,因为只有一个端点,并且在任何异常情况下策略都会失败。

升级queryEndpoints或将策略更改为BestEffortRetryStrategy或同时执行以下操作:

final CouchbaseEnvironment env = DefaultCouchbaseEnvironment
  .builder()
  .queryEndpoints(2)
  .retryStrategy(BestEffortRetryStrategy.INSTANCE)
  .build();