在K8S pod中,桶操作时Couchbase超时

时间:2016-03-09 15:47:48

标签: java couchbase kubernetes

我能够将我的问题缩小到以下情况:

我正在用两个容器创建Kubernetes pod:

  • couchbase - 使用官方Couchbase 3.1映像中的一个桶初始化版本
  • 我试图连接到Couchbase并使用此存储桶的Java应用

我的应用程序代码如下(主要功能的完整内容):

    CouchbaseEnvironment ce = DefaultCouchbaseEnvironment.builder()
            .connectTimeout(10000)
            .build();
    CouchbaseCluster cluster = CouchbaseCluster.create(ce, "127.0.0.1");
    Bucket bucket = cluster.openBucket("my_user", "some_pass");
    JsonObject jo = JsonObject.empty();
    jo.put("SomeName", "someValue");
    bucket.upsert(JsonDocument.create("my_id", jo));

在超时的最后一个命令失败:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: java.util.concurrent.TimeoutException
    at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:93)
    at com.couchbase.client.java.CouchbaseBucket.upsert(CouchbaseBucket.java:267)
    at com.couchbase.client.java.CouchbaseBucket.upsert(CouchbaseBucket.java:262)
    at CConfig.main(CConfig.java:19)
    ... 6 more
Caused by: java.util.concurrent.TimeoutException
    ... 10 more
Exception in thread "main" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:62)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:54)
    ... 1 more
Caused by: java.lang.RuntimeException: java.util.concurrent.TimeoutException
    at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:93)
    at com.couchbase.client.java.CouchbaseBucket.upsert(CouchbaseBucket.java:267)
    at com.couchbase.client.java.CouchbaseBucket.upsert(CouchbaseBucket.java:262)
    at CConfig.main(CConfig.java:19)
    ... 6 more
Caused by: java.util.concurrent.TimeoutException
    ... 10 more

我不知道如何解决这个问题或者找到根本原因,因为Couchbase只有一个空桶,因此超时是不太可能的。

PS为Couchbase客户端配置日志时,我能够看到 keep-alive 条目正常工作。

我在2.1.0版本中使用官方Couchbase java客户端。还试过2.1.6和2.2.5但没有运气。

1 个答案:

答案 0 :(得分:0)

问题是由我创建的 - 我创建的存储桶没有密码设置,我尝试用密码连接到它...

我想删除整个答案,但我认为如果其他人有类似的问题可能会有所帮助