saay, hi
카프카의 확장 본문
부하 분산이 목적인 경우에 브로커만 추가했다고 끝나는 것이 아니라 새롭게 추가된 브로커에도 기존의 파티션들을 할당 해야 함
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 |