[Kafka CLI] 5. Consumer Group Management CLI

Kafka Consumer Group 재설정, 삭제 또는 관리하기

컨슈머 그룹 리스팅 및 컨슈머 그룹 하나의 상세 정보 확인 후 컨슈머 그룹 지우기

클러스터 위치토픽명보안설정파일
자신의 카프카 서버 IP사용하고자 하는 데이터와 연관된 이름보안이 필요한 설정 파일명 또는 위치
  • 외부나 보안 설정을 해서 접속하려면 보안설정파일을 설정해서 해야한다.

컨슈머 그룹 리스팅 하기

  • 현재 카프카에서 생성한 컨슈머 목록을 확인 할 수 있다.
# 컨슈머 목록 불러오기
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
>
my-first-application
my-second-application

컨슈머 그룹 상세 정보 조회하기

—describe상세 정보 표기 옵션
# 컨슈머 그룹 상세 정보 확인
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-second-application
GROUPTOPICCURRENT-OFFSETLOG-END-OFFSETLAGCONSUMER-ID
속한 그룹명토픽 이름현재 오프셋 위치마지막 오프셋 위치현재 랙 위치현재 컨슈머 아이디

  • 그륩 아이디, 토픽명, 파티션, 현재 오프셋, 마지막 오프셋, 랙정보를 확인할 수 있다.

컨슈머 랙 확인하기.

# 카프카 콘솔 프로듀서 하기
kafka-console-producer.sh --bootstrap-server localhost:9092 --producer-property partitioner.class=org.apache.kafka.clients.producer.RoundRobinPartitioner --topic third_topic
>a 
>b
>c
>d
>e

# 카프카 프로듀서에 메세지를 전달한 후 그룹 상세 조회를 해보면 랙이 형성되어 있다.
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-second-application

# 컨슈머를 재확인 해보자
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic third_topic --group my-second-application --from-beginning
>a
>b
>c
>d
>e

# 컨슈머 그룹 재조회시 랙이 사라진걸 볼 수 있다.
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-second-application
  • 카프카 프로듀서에 메세지 전달 후 그룹 상세 조회시 랙이 형성되어 있다.
    • 현재 오프셋과 마지막 오프셋간에 격차가 LAG으로 표기

컨슈머 그룹에서 컨슈머가 어떻게 형성되는지 확인

  • 컨슈머 2개 실행시 – 파티션이 자동으로 컨슈머가 분배되어 할당됨.
  • 컨슈머 단일 실행시 – 모든 파티션이 같은 컨슈머를 보고 있음.
  • 단일과 다수의 컨슈머 실행시 파티션에 할당된 컨슈머 그룹이 자동으로 컨슈머가 할당되는것을 볼 수 있다.
  • 결과적으로 2개의 다른 ID를 가진 2개의 다른 컨슈머가 다른 파티션의 세트를 소비하고 있다.

컨슈머 그룹 상세 정보를 확인하지 않는 경우

# 그룹 아이디 지정 하지 않고 컨슈머 실행
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic third_topic --from-beginning
# 예시
> 컨슈머가 모든 토픽을 읽어옴...
> 토픽 데이터...

# 컨슈머 그립 리스팅 
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
>my-first-application
>my-second-application
>console-consumer-39952
  • console-consumer라는 이름의 그룹이 생겼다.
    • 해당 그룹은 지정되지 않은 그룹에 대한 임시 그룹으로 여기 있다가 잠시 사용되고 제거된다.
    • 그룹 ID 없이 콘솔에서 컨슈머 그룹을 사용할 때 , 임시 컨슈머 그룹이라 잠시 후 사라지기 때문에 이 컨슈머 그룹 ID는 사용하면 안된다.
    • 컨슈머 토픽을 원하는 경우 사전에 정의한 컨슈머 그룹을 사용해야 한다.
LIST