java - Couchbase 获取多个文档时出现 java.util.concurrent.TimeoutException

标签 java couchbase

我正在尝试使用以下代码从 Couchbase 获取文档:

public synchronized  void initialize() {
  CouchbaseEnvironment env =
   DefaultCouchbaseEnvironment
   .builder()
   .connectTimeout(10000)
   .build();
  setBucket(proper
  .getCluster()
  .openBucket(proper.getBucket(),proper.getBucketPassword())
}
public JsonDocument findByDocumentId(String id) {
    try {
        return getBucket.get(id);
    } catch (Exception e) {
       e.printStackTrace(System.out);
    }
}

我能够成功检索 3 或 4 个文档,但随后收到 TimeoutException:

java.lang.RuntimeException: java.util.concurrent.TimeoutException
 at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:93)
 at com.couchbase.client.java.CouchbaseBucket.get(CouchbaseBucket.java:100)
 at com.couchbase.client.java.CouchbaseBucket.get(CouchbaseBucket.java:95)

为什么我会超时以及如何避免它?

最佳答案

在配置环境时,您可以使用 kvTimeout(long) 参数增加键/值操作超时。

EG

 CouchbaseEnvironment env =
   DefaultCouchbaseEnvironment
   .builder()
   .kvTimeout(5000) //in ms
   .build();

但如果您需要增加此值并且不会给您的系统带来压力,我会担心。这可能表明某个地方的设置配置不当。

有关可配置选项的列表,请参阅 http://developer.couchbase.com/documentation/server/4.0/sdks/java-2.2/env-config.html

关于java - Couchbase 获取多个文档时出现 java.util.concurrent.TimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37014390/

相关文章:

java - Ivy 未能解决

Java-并发修改异常

Couchbase cbdocloader 错误

javascript - 阻止将 _sync 文档保存到 couchbase 服务器

nosql - Couchbase 更新查询划分

java - PopupMenu.show() Android 上的二进制 XML 膨胀错误

java - 元素未附加到页面文档

couchbase - N1QL嵌套json,查询数组内对象内的字段

java - 主类: Manifest - how to define an entry point with arguments

android - 在 Android 应用程序和服务器 Couchbase Lite 之间同步数据