티스토리 뷰

IT/Kafka

[Kafka] 파티션 생성 관련

forest-33 2024. 4. 27. 17:34

 

토픽 생성 시 파티션이 배치되는 방법

 

round-robin 방식으로 리더 파티션 생성

  • 파티션이 5개인 토픽을 생성했을 경우 round-robin 방식으로 브로커마다 리더 파티션이 생성됨
  • 카프카 클라이언트는 리더 파티션이랑 통신하므로 브로커별로 골고루 통신하게 되는 셈
  • 로드벨런싱
  • 팔로워 파티션은 리더파티션 생성된 다음 브로커에 순차적으로 생성됨

 

 

특정 브로커에 파티션이 몰리는 현상

  • kafka-reassign-partition.sh 명령어로 파티션 재분배 가능 

 

 

파티션 개수와 컨슈머 개수의 처리량

  • 파티션은 카프카 병렬처리의 핵심으로 그룹으로 묶인 컨슈머들이 레코드를 병렬로 처리할 수 있도록 매칭됨
  • 파티션과 컨슈머의 관계는 1:1
  • 컨슈머의 처리량이 한정된 상황에서 처리량을 높이려면 컨슈머 개수를 늘려 스케일 아웃하고 파티션 개수도 늘려야함
  • 특정 컨슈머에 장애가 발생하면 여러개의 파티션 할당이 가능
  • 프로듀서가 초당 10개의 데이터를 생성한다고 하면 최소 파티션 10개 컨슈머 10개를 생성해야하며, 넉넉하개 20개씩 생성해두는게 좋음

 

파티션 개수를 줄이는 것은 불가능

  • 카프카에서 이미 생성된 파티션을 줄이는 것은 불가능.토픽을 재생성하는 방법밖에 없음
  • 파티션의 데이터는 세그먼트로 저장하고 있기 때문에 여러 브로커에 저장된 데이터를 취합하고 정렬해야하는 복잡한 과정이 필요함
  • 파티션을 늘리는건 신중해야함
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함