Kafka 실습: 토픽과 컨슈머 그룹의 동작 메커니즘 확인하기
|
2 min read
지난 포스팅에서 카프카 환경을 구축하고 기본적인 메시지 전송 테스트를 마쳤습니다. 이번에는 카프카의 핵심 설계 중 하나인 **컨슈머 그룹(Consumer Group)**이 토픽에 따라 어떻게 다르게 동작하는지 구체적인 시나리오별로 확인해 보겠습니다.
1. 테스트 시나리오: 동일 토픽, 다른 그룹
가장 기본적인 궁금증은 "하나의 토픽에 여러 그룹이 붙으면 어떻게 될까?"입니다.
- 설정: 을 구독하는text
topic1와textGroup A를 생성textGroup B - 결과: 메시지를 발행하면 와text
Group A둘 다 메시지를 수신합니다.textGroup B - 결론: 카프카는 동일한 데이터를 여러 목적(로그 저장, 실시간 분석 등)으로 동시에 사용할 수 있게 해줍니다.
2. 테스트 시나리오: 동일 그룹, 다른 토픽
반대로 하나의 그룹이 여러 토픽을 구독하는 경우입니다.
- 설정: 가text
Group C와texttopic2를 모두 구독하도록 설정texttopic3 - 결과: 각 토픽에 메시지를 보낼 때마다 내의 해당 리스너가 정확히 반응하여 메시지를 수신합니다.text
Group C - 결론: 컨슈머 그룹 내에서 여러 토픽을 유연하게 관리할 수 있습니다.
3. 특정 파티션 지정 수신
특정 파티션에 할당된 메시지만을 수신해야 하는 특수한 상황도 테스트했습니다.
- 설정: 가text
Group D를 구독texttopic4 - 결과: 지정된 토픽 리스너를 통해 정상적으로 메시지가 전달되는 것을 확인했습니다.
실습을 통해 확인한 카프카의 특징은 다음과 같습니다:
- 같은 토픽이라도 그룹이 다르면 모든 그룹에 메시지가 전달됩니다. (브로드캐스트/멀티캐스트 효과)
- 같은 그룹 내에서는 파티션 단위로 데이터가 분산되어 병렬 처리가 가능해집니다.
이러한 특징들을 잘 활용하면 대규모 트래픽에서도 데이터 유실 없이 안정적이고 빠른 시스템을 설계할 수 있을 것 같습니다.