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
GROUP | TOPIC | CURRENT-OFFSET | LOG-END-OFFSET | LAG | CONSUMER-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는 사용하면 안된다.
- 컨슈머 토픽을 원하는 경우 사전에 정의한 컨슈머 그룹을 사용해야 한다.