해결된 질문
작성
·
230
·
수정됨
0
안녕하세요 선생님!
완강 후에 정리하며 이것저것 테스트를 하는 와중에 궁금한게 생겨 질문드립니다.
이미 특정 토픽의 파티션이 브로커들에게 분배된 상태에서, 새로운 브로커가 추가됐을 때 새로운 브로커는 특정 토픽의 파티션을 가질 수 있는 대상으로 선정되지 않는 것 같습니다.
새로운 브로커가 추가 됐을 때 새 브로커에도 기존의 토픽의 파티션 재분배를 하는 방법이 있나요?
불가능 하다면, 이런 모델을 가지는 이유가 있을까요?
테스트 과정 공유드립니다.
broker #1, #2 총 2개 띄운 상태에서 partition 3개, replication 2개의 토픽 생성 (topic-p3r2)
Topic: topic-p3r2 Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline:
Topic: topic-p3r2 Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2 Offline:
Topic: topic-p3r2 Partition: 2 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline:
broker #3 추가 후 topic-p3r2 토픽 상태
Topic: topic-p3r2 Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline:
Topic: topic-p3r2 Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2 Offline:
Topic: topic-p3r2 Partition: 2 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline:
브로커#3은 후보에도 오르지 않았습니다.
제가 예상했던 건 아래와 같이 브로커#3이 추가되었을 때 브로커#3도 토픽의 파티션을 갖는 것이었습니다.
(아래 로그는 제가 상상한 것을 임의로 만든 것입니다)
Topic: topic-p3r2 Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1 Offline:
Topic: topic-p3r2 Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2 Offline:
Topic: topic-p3r2 Partition: 2 Leader: 3 Replicas: 3,1 Isr: 3,1 Offline:
감사합니다!!
답변 1
1
안녕하십니까,
카프카 클러스터에서는 노드를 추가시, 토픽을 자동으로 해당 노드에 재 분배하지 않습니다. 이건 다른 많은 데이터 기반 클러스터 시스템에서도 동일한 정책입니다. (물론 어떤 데이터 클러스터 시스템은 자동으로 데이터를 분배하기도 합니다만 ^^;;)
만약에 노드가 추가될 때 마다 토픽을 자동으로 재 분배를 해버리게 되면 운영중인 토픽을 재 분배하므로 재 분배 시간 동안에는 데이터를 못 받아들이게 되고, 실시간 운영상 부하가 심하게 됩니다. 클러스터에 새로운 노드가 추가되고 기존 Topic를 새로운 노드로 분배하고 싶다면 기존 Topic의 사용을 중지한 상태에서 Topic 마이그레이션을 직접 수동으로 적용해야 합니다.
감사합니다.
와우 선생님 바로 납득되었습니다.
최곱니다. 감사합니다.