-
카테고리
-
세부 분야
데이터 엔지니어링
-
해결 여부
해결됨
브로커가 추가될 때 파티션 재분배
23.10.25 11:11 작성 23.10.25 11:12 수정 조회수 200
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
권 철민
지식공유자2023.10.26
안녕하십니까,
카프카 클러스터에서는 노드를 추가시, 토픽을 자동으로 해당 노드에 재 분배하지 않습니다. 이건 다른 많은 데이터 기반 클러스터 시스템에서도 동일한 정책입니다. (물론 어떤 데이터 클러스터 시스템은 자동으로 데이터를 분배하기도 합니다만 ^^;;)
만약에 노드가 추가될 때 마다 토픽을 자동으로 재 분배를 해버리게 되면 운영중인 토픽을 재 분배하므로 재 분배 시간 동안에는 데이터를 못 받아들이게 되고, 실시간 운영상 부하가 심하게 됩니다. 클러스터에 새로운 노드가 추가되고 기존 Topic를 새로운 노드로 분배하고 싶다면 기존 Topic의 사용을 중지한 상태에서 Topic 마이그레이션을 직접 수동으로 적용해야 합니다.
감사합니다.
답변 1