2014-01-28 2 views
0

우리는 아마존에 3 노드와 작은 테스트 클러스터가 있습니다. 모든 것이 cqlsh와 함께 작동하는 것 같습니다. 하지만 랩톱에서 앱을 디버깅하려고 할 때 (아마존 외에서), '채널이 닫혔다'라는 오류가 발생하여 영원히 다시 시도하기 시작합니다. 필자는 이클립스 콘솔에 프라이빗 IP를 보여주기 때문에 cassandra.ymal의 설정으로 인해 발생했을 가능성이 높다. 여러 가지 방법을 시도했지만 여전히 동일한 문제를 겪고 있습니다. 이것에 대한 모든 의견을 감사하십시오. 클라이언트로부터 사설 IP 10.251.x.x를 제거하는 방법은 무엇입니까?카산드라 채널 폐쇄되었습니다

일부 컨텍스트는 다음과 같습니다. 버전 : [cqlsh 4.0.1 | 카산드라 2.0.4 | CQL 사양 3.1.1 | 드리프트 프로토콜 19.39.0]

산드 드라이버 코어-2.0.0-rc1.jar

cassandra.ymal에서

:

seed_provider: 
- class_name: org.apache.cassandra.locator.SimpleSeedProvider 
    parameters: 
     - seeds: "54.203.x.x,54.203.x.y" 

listen_address : 10.251.ab

broadcast_address : 54.203.xx

native_transport_port : 9042

endpoin t_snitch : Ec2MultiRegionSnitch

이클립스 콘솔에서 :

DEBUG [주] (ControlConnection.java:145) - [제어 연결] 성공적으로 /54.203.xx에 연결

DEBUG [카산드라 자바 드라이버 노동자-0 ] (Session.java:379) - 쿼리 된 호스트 목록에 /54.203.xx 추가

DEBUG [Cassandra Java Driver worker-1] (Session.java:379) - 쿼리 된 호스트 목록에 /10.251.ac 추가

DEBUG [카산드라 자바 드라이버 노동자-1] (Connection.java:103가) - [/10.251.ac-1] /10.251.ac에 연결 오류 (연결 시간이 초과되었습니다 : /10.251.ac:9042)

DEBUG [카산드라 자바 드라이버 worker- 1] (Session.java:390) - /10.251.ac에 대한 풀 생성 오류 ([/10.251.ac] 연결할 수 없음)

DEBUG [Cassandra Java Driver worker-1] (Cluster.java:1064) 10.251.ac가 다운 스케줄링 접속

DEBUG 시도가 신품 I/O 작업자 # 4 (Connection.java:194) -

com.datastax.driver.core /10.251.ac을 위해 연결 및 defuncting. TransportException : [/10.251.ab] Chan Nel 보낸

답변

1

"클러스터 설명"호출하여 자바 드라이버 자동 검색을 사용하고있는 것 같다 ... com.datastax.driver.core.Connection $ Dispatcher.channelClosed (Connection.java:548) 에서 을 닫은 클러스터의 모든 노드 목록을 가져옵니다. Ec2Snitch를 사용하는 AWS에서는 AWS 외부에서 작동하지 않는 개인용 ips로 변환됩니다. 마지막 표창 내 관심을 끌었

https://datastax-oss.atlassian.net/browse/JAVA-145

: 여기이 주제에 대한 토론이있다. 드라이버의 LoadBalancingPolicy를 사용하여 노드를 제한 할 수 있다고합니다. 자동 검색을하지 못하도록 특정 IP를 지정하는 것을 포함합니다.