2013-03-06 3 views
2

카산드라 클러스터에 연결하는 방법이 분명하지 않기 때문에 여기에서 오해가있을 수 있습니다. 나는 AWS에서 Priam이 관리하는 Cassandra 1.2.1 클러스터 5 개 노드를 보유하고 있습니다.어떤 Cassandra 노드에 연결해야합니까?

conPool = new ConnectionPoolConfigurationImpl(getConecPoolName())    .setMaxConnsPerHost(CONNECTION_POOL_SIZE_PER_HOST).setSeeds(MY_IP_SEEDS) 
       .setMaxOperationsPerConnection(100) // 10000 

내가 MY_IP_SEEDS로 무엇을 사용한다 : 나는 울부 짖는 코드와 유사한 코드를 사용하여이 클러스터에 연결하는 아 스티 아낙 스를 사용 하시겠습니까? 쉼표로 구분 된 모든 노드의 IP를 사용해야합니까? 아니면 단지 하나의 기계 (시드 머신)의 IP를 사용해야합니까? 내가 한 대의 기계의 IP를 사용한다면 너무 많은 요청으로이 기계에 과부하가 걸릴지 걱정됩니다.

각 노드마다 IP 목록을 반환하고 RAC 당 하나의 시드가 있다는 것을 Priam은 "get_seeds"REST API (https://github.com/Netflix/Priam/wiki/REST-API)를 가지고 있음을 알고 있습니다. 그러나 시드 노드가 다운되면 어떻게 될지 확신하지 못합니다. 새 연결을 만들려고 할 때 다른 사람들과 연결해야합니다. 맞습니까?

답변

2

시드 노드는 노드 시작시 클러스터로가는 길을 찾기위한 용도로만 사용되며 과부화 문제는 없습니다.

물론 노드 중 하나가 클러스터에 도달 가능해야하며 새 노드를 가동하여 실행해야합니다.

따라서 노드를 시작하기 전에 Priam에서 시드 목록을 업데이트하는 것이 가장 좋습니다. Priam은 자동으로 업데이트되는 DNS 항목 뒤에 있어야합니다.

최고의 가용성을 자랑하는 사람이라면 Priam에서 현재의 씨앗 목록을 정기적으로 저장하고 Priam이 없을 때에도 노드를 가져올 수 있도록 꼭두각시 또는 요리사 구성을 저장하는 것처럼 미러 된 방식으로 저장해야합니다. 도달 할 수있는.

관련 문제