我在亚马逊环境(AWS)的私有虚拟vpc中遇到了一个奇怪的连接问题。我的上下文是这样的,我在这个子网中有一个子网,我有2台机器,一台客户端机器,我使用Couchbase java SDK和一台Couchbase服务器。两者都是大实例。当前java版本1.6。我已经在安全组上为Couchbase打开了所有必需的端口(8091、8092、11210)。我正在使用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.0Java 1.6Ubuntu 11.10 server x64
在我的本地机器上,我有一个Couchbase在本地局域网的本地vm中运行,我使用它没有问题。
有谁能帮忙调试这个吗?我们想把Couchbase投入生产,但没有它我们就无法前进。
提前感谢您的帮助和信息
每个couchbase客户端文档-
Couchbase集群中任何给定节点的默认超时是2.5秒。如果Couchbase SDK没有收到来自此时,它将断开与Couchbase server的连接并尝试连接到另一个节点。
如果你的连接不是很好或不可靠,你可能想改变"OpTimeout"的值。
CouchbaseConnectionFactoryBuilder b = new CouchbaseConnectionFactoryBuilder();
b.setOpTimeout(5000);
client = new CouchbaseClient(b.buildCouchbaseConnection(nodes, "bucket-name", "pass"));