1. 개요

이 빠른 사용방법(예제)에서는 Kafka 소비자 그룹을 나열하는 방법을 배우고 세부 정보도 살펴봅니다.

2. 전제 조건

이 사용방법(예제)의 예제를 실행하려면 요청을 보낼 Kafka 클러스터가 필요합니다. 이것은 프로덕션 환경에서 실행되는 완전한 Kafka 클러스터이거나 테스트별 단일 인스턴스 Kafka 클러스터일 수 있습니다.

단순화를 위해 localhost의 2181 포트를 수신 하는 Zookeeper 인스턴스 와 함께 포트 9092를 수신하는 단일 노드 클러스터가 있다고 가정하겠습니다 .

또한 Kafka 설치 디렉토리에서 모든 예제 명령을 실행하고 있습니다.

3. 주제 및 소비자 추가

특정 Kafka 클러스터의 소비자를 나열하기 전에 먼저 kafka-topics.sh 셸 스크립트를 사용하여 몇 가지 주제를 추가해 보겠습니다 .

$ ./bin/kafka-topics.sh --create --topic users.registrations --replication-factor 1 \ 
  --partitions 2 --zookeeper localhost:2181
$ ./bin/kafka-topics.sh --create --topic users.verfications --replication-factor 1 \ 
  --partitions 2 --zookeeper localhost:2181

이제 소비자 그룹몇 개 추가 해야 합니다 . 가장 간단한 방법은 Kafka 배포판에 번들로 제공되는 콘솔 소비자사용하는 것입니다 .

$ ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic users.registrations --group new-user
$ ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic users.registrations --group new-user

여기에서는 kafka-console-consumer.sh  쉘 스크립트를 사용 하여 동일한 주제를 수신하는 두 명의 소비자를 추가했습니다. 이러한 소비자는 동일한 그룹에 있으므로 주제 파티션의 메시지는 그룹의 구성원 전체에 분산됩니다 . 이런 식으로 우리는  Kafka에서 경쟁 소비자 패턴을 구현할 수 있습니다 .

다른 주제에서도 소비합시다.

$ ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic users.verifications

소비자에 대한 그룹을 지정하지 않았기 때문에 콘솔 소비자는 자신을 고독한 구성원으로 사용하여 새 그룹을 만들었습니다 .

다음 섹션에서 이 새 그룹을 볼 수 있습니다. 여기에서 Kafka 클러스터에서 소비자 및 소비자 그룹을 나열하는 방법을 배웁니다.

4. 소비자 나열

Kafka 클러스터의 소비자를 나열하기 위해 kafka-consumer-groups.sh  셸 스크립트를 사용할 수 있습니다 . -list  옵션은 모든 소비자 그룹을 나열합니다 :

$ ./bin/kafka-consumer-groups.sh --list --bootstrap-server localhost:9092
new-user
console-consumer-40123

–list  옵션 외에도  –bootstrap-server  옵션을 전달  하여 Kafka 클러스터 주소를 지정합니다. 두 그룹에 세 명의 개별 소비자가 있으므로 결과에는 두 그룹만 포함됩니다.

첫 번째 그룹의 구성원을 확인하려면 , 우리가 사용할 수있는  "-group <이름> -describe 운영 위원" 옵션 :

$ ./bin/kafka-consumer-groups.sh --describe --group new-user --members --bootstrap-server localhost:9092
GROUP           CONSUMER-ID                    HOST            CLIENT-ID            #PARTITIONS
new-user        consumer-new-user-1-b90...     /127.0.0.1      consumer-new-user-1  1
new-user        consumer-new-user-1-af8...     /127.0.0.1      consumer-new-user-1  1

여기에서 새 사용자 그룹에 각각 하나의 파티션에서 소비하는 두 개의 개별 소비자가 있음을 알 수 있습니다 .

–members  옵션 을 생략하면 그룹의 소비자, 각각이 수신 대기 중인 파티션 번호 및 오프셋이 나열됩니다.

$ ./bin/kafka-consumer-groups.sh --describe --group new-user --bootstrap-server localhost:9092
GROUP           TOPIC                       PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG          
new-user        users.registrations         1          3               3               0              
new-user        users.registrations         0          5               5               0            

한 가지 더 주의할 점은 이 명령에 클러스터 또는 부트스트랩 서버 주소가 필요하다는 것입니다. 클러스터 연결 정보를 생략하면 셸 스크립트에서 오류가 발생합니다 .

$ ./bin/kafka-consumer-groups.sh --list
Missing required argument "[bootstrap-server]"
// truncated

5. 결론

이 짧은 사용방법(예제)에서는 처음에 몇 가지 Kafka 주제와 소비자 그룹을 추가했습니다. 그런 다음 소비자 그룹을 나열하고 각 그룹에 대한 세부 정보를 보는 방법을 배웠습니다.

Cloud footer banner