2017-04-24 2 views
0

두 개의 데이터 센터에서 작동하는 카산드라 클러스터가 있습니다. 각 DC에는 복제 계수가 3 인 3 개의 노드와 LOCAL_QUORUM으로 READ/WRITE 일관성이 있습니다.f5로드 밸런서의 Cassandra 다중 데이터 센터 클러스터 상태 확인

쿼럼이 더 이상 충족되지 않아 DC의 두 노드가 다운되었을 때 특정 DC 로의 트래픽을 중지하고 싶습니다. 로컬 쿼럼이 충족되지 않았지만 거기에서 가능하지 않은 경우 응용 프로그램 (클라이언트)에서 처리하도록 다른 DC 캐스 산드라에 연결해야합니다.

이것을 달성하기 위해 f5로드 밸런서에서 어떤 종류의 규칙을 설정할 수 있습니까?

답변

1

BIG-IP에 외부 모니터를 설치하여 클러스터 상태를 결정한 스크립트를 실행 한 다음 결과에 부하를 분산시킬 수 있습니다. BIG-IP 11.x +를 사용하고 있다면 스크립트를 만들고 가져와 필요한 인수를 추가하십시오. 그런 다음 모니터 프로파일을 작성하여 해당 외부 모니터를 호출하십시오.

DevCentral Wiki: External Monitor

아래로 스크롤하면 예제의 톤이 떨어져 구축 볼 수 있습니다 : 당신이 DevCentral이 계정이있는 경우

,이 페이지를 확인하십시오. MySql 모니터와 같은 예제가 있습니다. 이것이 BIG-IP에 대한 클러스터 상태 검사에 권장되는 경로입니다.

또는 성공/실패 메시지를 찾는 웹 페이지를 쿼리하기 만하면 클러스터 상태 페이지가 이미있는 경우 HTTP 모니터에서 메시지의 유효성을 검사하도록 할 수 있습니다. 수신 문자열을 사용자 정의하여 특정 컨텐츠를 찾거나 regex를 사용하여 특정 문자열 (예 : clusterFailure 또는 기타 등등)을 찾을 수 있습니다. 거기에서 적절한 LB 결정을 내릴 수 있습니다. Nagios 상태 페이지를 읽는 비슷한 모니터를 실행하고 특정 메시지에서 오류를 읽으면 해당 노드의 LB 연결을 읽습니다.

Here's some info on regex with http monitors.

+0

도움이됩니다. 카산드라 클러스터에는 클러스터 상태 페이지가 없기 때문에 스크립트를 사용해야한다고 생각합니다. – user3081593

+0

HTTP 모니터가 읽을 수있는 다른 모니터링 솔루션을 이미 갖고 있다면 나는 단지 생각하고있었습니다. 깨끗하지는 않지만 ... 스크립트가 적절한 방법입니다. HTTP 모니터는 웹 페이지를 읽는 것이 게으른 방법입니다. 다른 질문이 있으시면 Lemme이 알 수 있습니다. 또한 DevCentral 웹 사이트에 질문을 게시 할 수 있으며 누군가가 도움을 줄 수 있어야합니다. – Chase

+0

우리는 모니터링 솔루션을 사용하지 않고 있으며 지금은 더 이상의 질문이 없습니다. 귀하의 제안에 감사드립니다. – user3081593

관련 문제