Spring

Kafka consumer 와 partition 개수 증가시키기

ybs 2023. 11. 11. 23:43
반응형

사용자 트래픽이 높아짐에 따라, 특정 시간대에 Lag 이 쌓이면서 처리 지연이 발생했다. 그래서 consumer 와 partition 개수를 증가시키기로 했고 운영중인 상황에서 증가시키는 순서를 정리했다.

 

 

먼저 우리 시스템은 1:1:1 구조로 되어 있다. ex) consumer 서버 5대, producer 서버 5대, topic 의 partion 개수 5개

 

이제 Kafka consumer 와 partition 개수를 각각 2배씩 증가 시키려고 한다. 먼저 consumer concurrency 를 2로 올린다. 각 서버당 2니까 consumer 는 총 10이 된다.

 

[아파치 카프카 애플리케이션 프로그래밍 p217]

partition 을 여러 개로 운영하는 경우 데이터를 병렬처리하기 위해서 partition 개수와 consumer 개수를 동일하게 맞추는 것이 가장 좋은 방법이다. partition 개수가 n개 라면 동일 consumer group 으로 묶인 consumer thread 를 최대 n 개 운영 할 수 있다.

 

[아파치 카프카 애플리케이션 프로그래밍 p223]

consumer thread 가 partition 개수보다 많아지면, 할당할 partition 개수가 더는 없으므로 partition 에 할당되지 못한 consumer thread 는 데이터 처리를 하지 않는다.

 

그리고 두번째 작업은 topic partition size 를 10으로 변경한다. 

 

마지막으로 producer partition-count 를 10으로 증가시킨다.

반응형