saay, hi

카프카의 확장 본문

kafka 설치 및 구성/구성 가이드

카프카의 확장

saay-hi 2024. 7. 1. 18:14

부하 분산이 목적인 경우에 브로커만 추가했다고 끝나는 것이 아니라 새롭게 추가된 브로커에도 기존의 파티션들을 할당 해야 함

 

1. 브로커 부하 분산

- 해당 json 포맷에는 분산시킬 대상 토픽을 추가해 작성.
작성 후, reassign-partitions-topic.json 으로 저장
{"topics":
 [{"topic":"test01"}],
 "version":1
}

 

참고)

{"topics":
 [{"topic":"test01"}, {"topic":"test02"} ],
 "version":1
}

(분산시킬 토픽이 여러개일 경우, 콤마 (,) 구분자를 사용해 토픽 추가)

 

2. 분산시킬 대상 토픽에 대한 json 파일 생성 후, kafka-reassign-partitions.sh명령어를 이용해 파티션을 분산시킬 브로커 리스트를 지정함 (하단은 1,2,3,4 브로커 모두 지정할 경우 예시)

$> bin/kafka-reassign-partitions.sh --bootstrap-server broker1:9092 --generate --topics-to-move-json-file reassign-partitions-topic.json --broker-list "1,2,3,4" 

 

3. 제안하는 파티션 배치가 출력된 후, 복사하여 새로운 move.json 파일 생성

4. 토피 파티션 배치 실행

$>bin/kafka-reassign-partitions.sh --bootstrap-server broker1:9092 reassign-json-file move.json --excute 

 

5. 브로커에 고르게 배치됐는지 확인

$> bin/kafka-topic.sh --bootstrap-server broker1:9092 --describe --topic test01

 

파티션 재배치 이후 상태

카프카의 로드가 자동으로 분산되지 않고 실제로는 기존 브로커들이 갖고 있던 파티션들은 자동으로 분산되지 않음

수동으로 분산 작업이 필요함

 

*분산 배치 작업 시 주의사항

1. 카프카 샤용량이 낮은 시간에 진행할 것 (브로커 내부적으로 리플리케이션하는 동작이 일어나기 때문) 
2. 용량이 큰 토픽의 파티션을 재배치 할 경우,
최근의 내용까지 모두 컨슘했고 앞으로 재 처리 할 일이 없다면 최근 메시지를 제외한 나머지 메시지들은 모두 삭제해도 무방함
-> 임시로 해당 토픽의 보관주기를 1주일에서 1일로 변경한다면 700G였던 파티션의 크기는 100G로 줄어들 것이고 파티션의 크기를 줄이고 난 후 재배치 작업을 진행한다면 기존 대비 브로커 부하나 네트워크 사용량 절감
3. 파티션 재배치 작업 시 여러 개의 토픽을 동시에 진행하지 않고, 단 하나의 토픽만 진행해야 함

'kafka 설치 및 구성 > 구성 가이드' 카테고리의 다른 글

설치 및 구성  (0) 2024.06.27
cluster(3.6.0) 단일 서버ver 구성가이드  (0) 2024.06.21