[zookeeper 홀수개를 권장하는 이유]
클러스터를 구성할 때 적절한 노드 수: (n/2+1)
→ 5개의 노드로 zookeeper quorum을 구성하고자 한다면, (5/2+1) = 3개의 노드가 quorum으로 구성되어야 한다.
아래가 예제
만약 quorum 크기가 2라고 가정한 상태에서..
두 DC간 단절상황인 Split Brain이 발생한다면 각 DC에서는 각자 자신들이 Primary라고 인식하게 되서 중복으로 서비스가 실행되게된다.
이후에 장애가 복구되었을 때 정상적인 운영이 불가해지는 상태에 빠질 수 있다고 한다.
즉 Split Brain을 방지하기 위해 (n/2+1) = 3개를 quorum으로 구성할 필요가 있다.
참조: https://paulsmooth.tistory.com/156
split-brain과 zookeeper 서버 구성에 대한 정리: https://blog.actorsfit.com/a?ID=01300-582eef31-3269-41b7-80ab-d4da36d4f73f
[짝수개가 되면 안되는건가?]
결론적으로 짝수개를 구성해도 문제가 되진 않는다고 한다.
예를 들어, 5개로 구성된 클러스터A와 6개로 구성된 클러스터B를 비교해보자..!
Quorum
A: (5/2+1) = 3
B: (6/2+1) = 4
장애허용 수
A: 5-3 = 2
B: 6-4 = 2
즉, 짝수나 홀수가 장애허용수가 같고, 노드추가로 인한 오버헤드가 있을 수 있기 때문에 짝수개를 권장하지 않는다.
[2.5 Data Center Topology]
[참고도서]
https://www.oreilly.com/library/view/zookeeper/9781449361297/
'Kafka' 카테고리의 다른 글
Kafka Fundamental Hands On (0) | 2023.02.04 |
---|---|
StickyPartitioner를 사용할 때 메시지가 골고루 배분되지 못하는 현상 (0) | 2023.01.04 |
Kafka Topic Naming Convention에 대해.. (0) | 2022.12.13 |
Kafka Performance Tuning (0) | 2022.11.02 |
Kafka 토픽명에 날짜가 포함된 경우 오래된 날짜의 토픽 주기적으로 삭제하기 (0) | 2022.10.27 |