Blog

Kafka Consumer Group 설정에 대한 고찰

tag
프로젝트 고찰
날짜
2023/10/29
생성 일시
2023/10/29 11:52
작성자

고찰

책 나눔 신청 서비스에 Kafka를 적용할려구 합니다 하지만 그 설정하는 과정에서 약간의 고민이 생겼습니다. 기존 그룹과 같은 그룹 ID로 설정할지 아니면 새로운 그룹을 만들지...
Kafka를 사용하는 ‘유저 관리 페이지 로딩’ 서비스는 부하가 상대적으로 작습니다.
반면에, 추가될 ‘책 나눔 신청’ 서비스는 훨씬 더 많은 부하를 발생시킬 것으로 예상됩니다.
이 두 서비스의 부하 차이를 고려할 때, group.id를 분리하여 각 서비스를 독립적으로 관리하는 것이 합리적이지 않을까? 라는 생각이 들었습니다.
이렇게 하면 각 서비스의 성능과 관리 효율성을 최적화할 수 있을 것 같습니다.

Consumer Group 설정의 중요성

Consumer Group을 설정하는 것은 Kafka를 사용하는 서비스의 성능과 직결되는 중요한 요소입니다. 같은 group.id를 사용하는 경우와 서로 다른 group.id를 사용하는 경우, 두 상황에서의 동작 방식은 크게 다릅니다.

같은 group.id를 사용하는 경우

모든 컨슈머가 같은 그룹에 속하게 되며, 토픽의 파티션을 공유합니다.
토픽 간 작업 부하를 균등하게 분배할 수 있습니다.
컨슈머의 수가 동적으로 조정될 수 있어 유연성이 높습니다.

서로 다른 group.id를 사용하는 경우

각 컨슈머 그룹은 독립적으로 운영되며, 오프셋을 별도로 관리합니다.
특정 토픽에 문제가 생겨도 다른 토픽을 소비하는 그룹에는 영향이 없습니다.
각 토픽을 독립적으로 처리할 수 있으며, 소비 속도를 별도로 제어할 수 있습니다.