클러스터에는 브로커가 3대, 토픽에는 5개의 파티션이 존재한다.
이런 설정이면 0,1,2,3,4 순으로 파티션이 생성된다.
이렇게 라운드로빈으로 파티션이 생성되면 하나의 브로커에 파티션이 몰리는 hot-spot현상을 방지할 수 있다.
특정 브로커에 파티션이 몰리는 경우에는 kafka-reassign-partitions.sh
를 실행해서 파티션을 재분배할 수 있다.
기본적으로 파티션과 컨슈머는 1:1이다.
하나의 파티션에서 여러 컨슈머가 데이터를 읽을 수는 없다.
데이터 순서 보장이 되지 않기 때문이다.
전체적인 병렬 처리량을 늘리려면 파티션 갯수, 컨슈머 갯수를 늘리면 된다.
하나의 컨슈머에서 장애가 발생한다면, 코디네이터는 헬스체크에서 실패한 컨슈머가 담당하고 있던 파티션을 다른 컨슈머가 할당되도록 한다.
데이터와 트래픽을 고려해서 적절하게 파티션 수와 컨슈머 수를 늘리면 된다.
카프카에서 파티션 갯수를 줄이는 것은 불가능하다.
그래서 파티션의 갯수를 늘릴때에는 신중해야 한다.