문제 정의
초기 Kafka 클러스터는 단일 브로커와 1개의 파티션으로 구성되어, 처리 성능이 제한되고 브로커 장애 시 시스템 가용성에 문제가 있었습니다. 병렬 처리가 불가능해 컨슈머가 늘어도 처리 속도가 개선되지 않았고, 확장성도 한계가 있었습니다.
문제 원인
- 병렬 처리 부족: 단일 브로커와 1개의 파티션으로는 병렬 처리가 불가능해, 컨슈머가 증가하더라도 병렬로 메시지를 처리할 수 없었습니다.
- 확장성 한계: 브로커가 1대일 경우, 처리 성능뿐 아니라 장애 발생 시 전체 시스템 중단이 발생할 가능성이 있었습니다. 또한 트래픽 증가에 대비한 확장성도 한정적이었습니다.
해결 방안
- 브로커 수를 1대에서 3대로 확장하고 파티션을 3개로 분배함으로써 병렬 처리가 가능해졌습니다.
- 파티션 재분배 및 리더-팔로워 설정을 통해 브로커 간 부하 집중을 방지하였고, 처리 속도가 개선되었습니다.
- 멀티 브로커 환경에서 브로커 장애 시 다른 브로커가 대체할 수 있게 되어 안정성도 확보되었습니다.
모니터링 및 확인
로깅 및 모니터링 도구를 사용해 메시지 처리량, 컨슈머의 lag을 추적한 결과, 모든 브로커에 부하가 고르게 분산되고, 처리량 증가 및 컨슈머 lag이 감소한 것을 확인했습니다.

