최근에 Kafka를 이용한 신규 기능을 오픈하였고, 오늘로써 딱 2주가 되었다.
내가 담당한 부분은 consumer 부분이라서 관련 모니터링을 하던중 파티션 리벨런싱이 발생하게 되었다... 🔥
(다행히 기능 자체가 중복처리 문제가 크리티컬한 부분이 아니였기에 망정이지 ..)
원인을 파악해보니
consumer가 records를 처리 하던 중 설정한 시간이 초과하여 broker는 컨슈머가 문제가 있다고 판단하고 파티션 리벨런싱을 진행시킨것이다.
나는 아래 두가지 값을 모두 default 값으로 설정하고, 진행하였다.
아마 컨슈머가 500개의 records를 처리하던 중 max.poll.interval.ms를 초과했을거라고 추측된다.
max.poll.interval.ms | 컨슈머가 poll() 메소드를 호출하여 브로커에게 메세지를 가져오는 동안 지연될 수 있는 최대 시간 |
5분 |
max.poll.records | 컨슈머가 처리할때 가져오는 record의 수 | 500 |
해결방안으론 max.poll.records를 줄이는 방향으로 설정값을 변경하였다.
그 이후로는 아직까지 이슈없이 잠잠하다!