使用Java SDK的Couchbase连接超时

使用Java SDK的Couchbase连接超时,java,couchbase,nosql,Java,Couchbase,Nosql,我按照couchbase教程连接到远程couchbase服务器,但在我尝试打开默认bucket后连接超时失败 我已经检查过我可以在我的计算机上打开couchbase服务器页面(192.xx.xx.xx:8091) 这是我的Java代码 CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder() .queryEnabled(true) .build(); Cluster clust

我按照couchbase教程连接到远程couchbase服务器,但在我尝试打开默认bucket后连接超时失败

我已经检查过我可以在我的计算机上打开couchbase服务器页面(192.xx.xx.xx:8091)

这是我的Java代码

CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
            .queryEnabled(true)
            .build();
Cluster cluster = CouchbaseCluster.create(env,"192.xx.xx.xx:8091");

Bucket bucket = cluster.openBucket("default","");
JsonObject user = JsonObject.empty()
        .put("firstname", "Walter")
        .put("lastname", "White")
        .put("job", "chemistry teacher")
        .put("age", 50);

JsonDocument doc = JsonDocument.create("walter", user);
JsonDocument response = bucket.upsert(doc);

JsonDocument walter = bucket.get("walter");
System.out.println("Found: " + walter);

cluster.disconnect();
还有控制台

com.couchbase.client.core.CouchbaseCore <init>
CouchbaseEnvironment: {sslEnabled=false, sslKeystoreFile='null', sslKeystorePassword='null', queryEnabled=true, queryPort=8093, bootstrapHttpEnabled=true, bootstrapCarrierEnabled=true, bootstrapHttpDirectPort=8091, bootstrapHttpSslPort=18091, bootstrapCarrierDirectPort=11210, bootstrapCarrierSslPort=11207, ioPoolSize=4, computationPoolSize=4, responseBufferSize=16384, requestBufferSize=16384, kvServiceEndpoints=1, viewServiceEndpoints=1, queryServiceEndpoints=1, ioPool=NioEventLoopGroup, coreScheduler=CoreScheduler, eventBus=DefaultEventBus, packageNameAndVersion=couchbase-java-client/2.1.4 (git: 2.1.4), dcpEnabled=false, retryStrategy=BestEffort, maxRequestLifetime=75000, retryDelay=ExponentialDelay{growBy 1.0 MICROSECONDS; lower=100, upper=100000}, reconnectDelay=ExponentialDelay{growBy 1.0 MILLISECONDS; lower=32, upper=4096}, observeIntervalDelay=ExponentialDelay{growBy 1.0 MICROSECONDS; lower=10, upper=100000}, keepAliveInterval=30000, autoreleaseAfter=2000, bufferPoolingEnabled=true, queryTimeout=75000, viewTimeout=75000, kvTimeout=2500, connectTimeout=5000, disconnectTimeout=25000, dnsSrvEnabled=false}

com.couchbase.client.core.node.CouchbaseNode$1 call
Connected to Node 192.xx.xx.xx
Exception in thread "main" java.lang.RuntimeException: java.util.concurrent.TimeoutException
    at com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:93)
    at com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:108)
    at com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:99)
    at com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:89)
    at HelloCouchbase.main(HelloCouchbase.java:19)
Caused by: java.util.concurrent.TimeoutException
    ... 5 more
com.couchbase.client.core.CouchbaseCore
CouchbaseEnvironment:{sslEnabled=false,sslKeystoreFile='null',sslKeystorePassword='null',queryEnabled=true,queryPort=8093,bootstrapHttpEnabled=true,bootstraphttcarrierenabled=true,bootstrapHttpDirectPort=8091,bootstrapHttpSslPort=18091,bootstrapccarrierdirectport=11210,bootstrapccarriersslport=11207,ioPoolSize=4,computationPoolSize=4,responseBufferSize=16384,requestBufferSize=16384,kvServiceEndpoints=1,viewServiceEndpoints=1,queryServiceEndpoints=1,ioPool=NioEventLoopGroup,coreScheduler=coreScheduler,eventBus=DefaultEventBus,PackageNamedVersion=couchbase java client/2.1.4(git:2.1.4),dcpEnabled=false,retryStrategy=Bestfort,maxRequestLifetime=75000,retryDelay=ExponentialDelay{增长1.0微秒;下限=100,上限=100000},重新连接延迟=指数延迟{增长1.0毫秒;下限=32,上限=4096},观测间隔延迟=指数延迟{增长1.0微秒;下限=10,上限=100000},keepAliveInterval=30000,autoreleaseAfter=2000,BufferPoolyGenabled=true,queryTimeout=75000,viewTimeout=75000,kvTimeout=2500,connectTimeout=5000,disconnectTimeout=25000,dnsSrvEnabled=false}
couchbase.client.core.node.CouchbaseNode$1调用
已连接到节点192.xx.xx.xx
线程“main”java.lang.RuntimeException中的异常:java.util.concurrent.TimeoutException
在com.couchbase.client.java.util.Blocking.blockForSingle(Blocking.java:93)上
位于com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:108)
位于com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:99)
位于com.couchbase.client.java.CouchbaseCluster.openBucket(CouchbaseCluster.java:89)
在hellocuchbase.main(hellococuchbase.java:19)
原因:java.util.concurrent.TimeoutException
…还有5个
使用couchbase服务器4

感谢您的帮助。

感谢本文

问题解决了

需要添加更长的connectTimeout,如下所示

CouchbaseEnvironment env = DefaultCouchbaseEnvironment.builder()
                    .connectTimeout(10000) // 10000ms = 10s, default is 5s
                    .queryEnabled(true).build();

如果你像我一样在某些情况下喜欢jvm开关, 您可以执行以下操作

java -Xms1g -Xmx4g -Dspring.profiles.active=local -Dcom.couchbase.connectTimeout=60000 <program>
java-Xms1g-Xmx4g-Dspring.profiles.active=local-Dcom.couchbase.connectTimeout=60000

可以使用前缀“com.couchbase”指定所有客户端设置