MinChur

Kafka 실습: 토픽과 컨슈머 그룹의 동작 메커니즘 확인하기

|
2 min read

지난 포스팅에서 카프카 환경을 구축하고 기본적인 메시지 전송 테스트를 마쳤습니다. 이번에는 카프카의 핵심 설계 중 하나인 **컨슈머 그룹(Consumer Group)**이 토픽에 따라 어떻게 다르게 동작하는지 구체적인 시나리오별로 확인해 보겠습니다.

1. 테스트 시나리오: 동일 토픽, 다른 그룹

가장 기본적인 궁금증은 "하나의 토픽에 여러 그룹이 붙으면 어떻게 될까?"입니다.

  • 설정:
    text
    topic1
    을 구독하는
    text
    Group A
    text
    Group B
    를 생성
  • 결과: 메시지를 발행하면
    text
    Group A
    text
    Group B
    둘 다 메시지를 수신합니다.
  • 결론: 카프카는 동일한 데이터를 여러 목적(로그 저장, 실시간 분석 등)으로 동시에 사용할 수 있게 해줍니다.

2. 테스트 시나리오: 동일 그룹, 다른 토픽

반대로 하나의 그룹이 여러 토픽을 구독하는 경우입니다.

  • 설정:
    text
    Group C
    text
    topic2
    text
    topic3
    를 모두 구독하도록 설정
  • 결과: 각 토픽에 메시지를 보낼 때마다
    text
    Group C
    내의 해당 리스너가 정확히 반응하여 메시지를 수신합니다.
  • 결론: 컨슈머 그룹 내에서 여러 토픽을 유연하게 관리할 수 있습니다.

3. 특정 파티션 지정 수신

특정 파티션에 할당된 메시지만을 수신해야 하는 특수한 상황도 테스트했습니다.

  • 설정:
    text
    Group D
    text
    topic4
    를 구독
  • 결과: 지정된 토픽 리스너를 통해 정상적으로 메시지가 전달되는 것을 확인했습니다.

실습을 통해 확인한 카프카의 특징은 다음과 같습니다:

  1. 같은 토픽이라도 그룹이 다르면 모든 그룹에 메시지가 전달됩니다. (브로드캐스트/멀티캐스트 효과)
  2. 같은 그룹 내에서는 파티션 단위로 데이터가 분산되어 병렬 처리가 가능해집니다.

이러한 특징들을 잘 활용하면 대규모 트래픽에서도 데이터 유실 없이 안정적이고 빠른 시스템을 설계할 수 있을 것 같습니다.