Java AWS VPC中的Couchbase连接不良(超时)

Java AWS VPC中的Couchbase连接不良(超时),java,timeout,couchbase,connectivity,Java,Timeout,Couchbase,Connectivity,我在Amazon环境(AWS)中的私有虚拟专有网络中遇到了一个奇怪的连接问题。我的上下文是这样的,我有子网,在这个子网中,我有两台机器,一台使用Couchbase java SDK的客户端机器和一台用于Couchbase服务器的机器。两者都是大例子。 当前java版本1.6。 我已经在安全组上为Couchbase打开了所有必需的端口(8091809211210)。我正在使用curl命令测试连接,以测试与bucket的连接,这里没有问题。 奇怪的行为是当我试图使用java客户端访问视图时,因为我收

我在Amazon环境(AWS)中的私有虚拟专有网络中遇到了一个奇怪的连接问题。我的上下文是这样的,我有子网,在这个子网中,我有两台机器,一台使用Couchbase java SDK的客户端机器和一台用于Couchbase服务器的机器。两者都是大例子。 当前java版本1.6。 我已经在安全组上为Couchbase打开了所有必需的端口(8091809211210)。我正在使用curl命令测试连接,以测试与bucket的连接,这里没有问题。 奇怪的行为是当我试图使用java客户端访问视图时,因为我收到了超时错误,尽管java客户端已成功通过身份验证

这是我的日志的样子:

(CacheManager.java:102) -B06C9F5CFF85- Cache client checked out [stdout]
INFO com.couchbase.client.CouchbaseConnection: Added {QA sa=/10.0.X.XXX:11210, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
INFO com.couchbase.client.CouchbaseConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@57a220c2
INFO net.spy.memcached.auth.AuthThread: Authenticated to 10.0.X.XXX/10.0.X.XXX:11210
Added 10.0.X.XXX to connect queue
INFO com.couchbase.client.CouchbaseClient: viewmode property isn't defined. Setting viewmode to production mode
INFO com.couchbase.client.http.AsyncConnectionManager: Opening new Couchbase HTTP connection
INFO com.couchbase.client.http.AsyncConnectionManager$ConnRequestCallback: /10.0.X.XXX:8092 - Session request successful
ERROR com.couchbase.client.ViewNode$EventLogger: Connection timed out: [10.0.X.XXX/10.0.X.XXX:8092]
and then after a while
INFO com.couchbase.client.ViewConnection: Node 10.0.X.XXX has no ops in the queue
INFO com.couchbase.client.ViewNode: I/O reactor terminated for 10.0.X.XXX
SHUTTING DOWN (informed client)) INFO com.couchbase.client.CouchbaseConnection: Shut down Couchbase client
因此,连接突然无缘无故地超时,然后客户端正在自行关闭

其他上下文数据: Couchbase服务器企业版2.0 Java 1.6 Ubuntu 11.10服务器x64

在我的本地机器上,我有一个Couchbase在本地lan的本地vm中运行,我在使用它时没有问题

有人能帮忙调试一下吗。我们想让Couchbase投入生产,但没有这一点,我们就无法前进


提前感谢您提供的任何帮助或信息。

根据couchbase客户文档-

Couchbase集群中任何给定节点的默认超时为2.5 秒。如果Couchbase SDK未收到来自 此时,它将断开与Couchbase服务器的连接 并尝试连接到另一个节点

如果您的连接不好或不可靠,您可能需要更改“OpTimeout”值

CouchbaseConnectionFactoryBuilder b = new CouchbaseConnectionFactoryBuilder();
            b.setOpTimeout(5000);
            client = new CouchbaseClient(b.buildCouchbaseConnection(nodes, "bucket-name", "pass"));

我也在使用amazon,但是使用ec2实例。有时他们会失去彼此之间的联系。尝试在cron中运行一些脚本,比如ping(或者使用一些监视工具,比如munin等),以确定是什么导致连接中断。可能是亚马逊的问题。这正是我想要的,谢谢!只需一句话:CouchbaseClient没有这个构造函数(再也没有了?),所以必须这样做:CouchbaseConnectionFactory ccf=b.buildCouchbaseConnection(节点,“bucket name”,“pass”);CouchbaseClient=新CouchbaseClient(ccf);