2013-03-13 2 views
5

Amazon 환경 (AWS)에서 비공개 가상 vpc에 이상한 연결 문제가 발생했습니다. 내 컨텍스트는이 서브넷에 서브넷이 있습니다. 2 대의 컴퓨터에 Couchbase java SDK 및 Couchbase 서버용 컴퓨터를 사용하는 클라이언트 시스템이 있습니다. 둘 다 큰 인스턴스입니다. 현재 Java 버전 1.6. 보안 그룹에서 Couchbase에 필요한 모든 포트 (8091809211210)를 열었습니다. 버킷과의 연결을 테스트하고 여기에 문제가없는 컬 명령으로 연결을 테스트하고 있습니다. 이상한 동작은 Java 클라이언트가 성공적으로 인증되었지만 시간 초과 오류를 받기 때문에 Java 클라이언트로보기에 액세스하려고 할 때입니다. 그래서 갑자기AWS VPC의 Couchbase 연결 상태가 좋지 않음 (TIMING OUT)

(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 [email protected] 
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 

연결 시간이 클라이언트 어떤 이유없이 다음 그 자체를 종료하고 있습니다 :

이 같은 내 로그 모습 것입니다.

다른 컨텍스트 데이터 : 내 로컬 컴퓨터에 카우치베이스 주식회사 서버 엔터프라이즈 2.0 자바 1.6 우분투 11.10 서버 64

나는 카우치베이스 주식회사는 로컬 LAN에서 로컬 VM에서 실행하고 난 그것을 사용에 아무런 문제가 없습니다.

아무에게도 디버깅을 도와 줄 수 있습니까? 우리는 생산에 Couchbase를 가져 가고 싶지만이 없이는 우리는 발전 할 수 없습니다.

도움이나 정보를 미리 보내 주셔서 감사합니다. 카우치베이스 주식회사 클라이언트 문서 당

+0

나는 아마존을 사용하고 있지만 ec2 인스턴스도 사용하고 있습니다. 때로는 서로 간의 연결이 끊어지는 경우가 있습니다. cron에서 핑 (ping)과 같은 스크립트를 실행하거나 (munin과 같은 모니터링 도구를 사용하여) 어떤 원인으로 연결되는지 확인하십시오. 아마존 문제일지도 몰라. – m03geek

답변

3

- 카우치베이스 주식회사 클러스터의 특정 노드에 대한

기본 제한 시간은 2.5 초입니다. Couchbase SDK가 이번에 서버로부터 응답을받지 못하면 Couchbase Server 으로 연결을 끊고 다른 노드에 연결을 시도합니다.

연결 상태가 좋지 않거나 신뢰할 수없는 경우에 대비하여 "OpTimeout"값을 변경할 수 있습니다.

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

이것은 정확히 내가 뭘 찾고 있었는지, 고마워! CouchbaseClient에는이 생성자가 없으므로 ( ) 이렇게하면됩니다. CouchbaseConnectionFactory ccf = b.buildCouchbaseConnection (nodes, "bucket-name", "pass"); CouchbaseClient 클라이언트 = 새 CouchbaseClient (ccf); – ylka

관련 문제