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 주제와 소비자 그룹을 추가했습니다. 그런 다음 소비자 그룹을 나열하고 각 그룹에 대한 세부 정보를 보는 방법을 배웠습니다.