Kafka 콘솔 도구를 Event Streams와 함께 사용
Apache Kafka 는 단순 관리 및 메시징 조작을 위한 다양한 콘솔 도구와 함께 제공됩니다. Event Streams에서 ZooKeeper 클러스터에 대한 연결이 허용되지 않는 경우에도 Event Streams와 함께 해당 콘솔 도구를 사용할 수 있습니다. Kafka 가 개발됨에 따라 이전에 ZooKeeper 에 연결해야 했던 많은 도구에는 더 이상 해당 요구사항이 없습니다.
이러한 콘솔 도구는 Kafka 다운로드의 bin 디렉토리에 있습니다. Apache Kafka 다운로드에서 클라이언트를 다운로드할 수 있습니다.
이 도구에 SASL 인증 정보를 제공하려면 다음 예제에 따라 특성 파일을 작성해야 합니다.
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD";
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
ssl.protocol=TLSv1.2
ssl.enabled.protocols=TLSv1.2
ssl.endpoint.identification.algorithm=HTTPS
USER 및 PASSWORD를 Event Streams 콘솔의 IBM Cloud 서비스 인증 정보에 있는 값으로 대체하십시오.
콘솔 생성자
Event Streams와 함께 Kafka 콘솔 생성자 도구를 사용할 수 있습니다. 브로커 및 SASL 인증 정보의 목록을 제공해야 합니다.
특성 파일을 작성한 후 다음과 같이 터미널에서 콘솔 생성자를 실행할 수 있습니다.
kafka-console-producer.sh --broker-list BOOTSTRAP_ENDPOINTS --producer.config CONFIG_FILE --topic TOPIC_NAME
예제에 있는 다음 변수를 고유한 값으로 대체하십시오.
- IBM Cloud 콘솔에서 Event Streams 서비스 신임 정보 탭의 값이 있는 BOOTSTRAP_ENDPOINTS.
- CONFIG_FILE - 구성 파일 경로 포함
ZooKeeper에 액세스해야 하는 옵션을 제외하고 이 도구의 여러 다른 옵션을 사용할 수 있습니다.
콘솔 이용자
Event Streams와 함께 Kafka 콘솔 이용자 도구를 사용할 수 있습니다. 부트스트랩 서버 및 SASL 인증 정보를 제공해야 합니다.
이전에 설명한 대로 특성 파일을 작성한 후 다음과 같이 터미널에서 콘솔 이용자를 실행하십시오.
kafka-console-consumer.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --consumer.config CONFIG_FILE --topic TOPIC_NAME
예제에 있는 다음 변수를 고유한 값으로 대체하십시오.
- IBM Cloud 콘솔에서 Event Streams 서비스 신임 정보 탭의 값이 있는 BOOTSTRAP_ENDPOINTS.
- CONFIG_FILE - 구성 파일 경로 포함
ZooKeeper에 액세스해야 하는 옵션을 제외하고 이 도구의 여러 다른 옵션을 사용할 수 있습니다.
이용자 그룹
Event Streams와 함께 Kafka 이용자 그룹 도구를 사용할 수 있습니다. Event Streams에서 ZooKeeper 클러스터의 연결을 허용하지 않으므로 일부 옵션을 사용할 수 없습니다.
이전에 설명한 대로 특성 파일을 작성한 후 터미널에서 이용자 그룹 도구를 실행하십시오. 예를 들어, 다음과 같이 이용자 그룹을 나열할 수 있습니다.
kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --list --timeout 60000
예제에 있는 다음 변수를 고유한 값으로 대체하십시오.
- IBM Cloud 콘솔에서 Event Streams 서비스 신임 정보 탭의 값이 있는 BOOTSTRAP_ENDPOINTS.
- CONFIG_FILE - 구성 파일 경로 포함
이 도구를 사용하여 이용자의 현재 위치, 해당 지연 시간 및 그룹의 각 파티션에 대한 client-id와 같은 세부사항을 표시할 수도 있습니다. 예를 들어, 다음과 같습니다.
kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --describe --group GROUP --timeout 60000
예제에 있는 GROUP을 세부사항을 검색할 그룹 이름으로 대체하십시오.
kafka-consumer-groups 도구 실행에서 다음 샘플 출력을 참조하십시오.
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
consumer-group-1 foo 0 264 267 3 client-1-abc example.com client-1
consumer-group-1 foo 1 124 124 0 client-1-abc example.com client-1
consumer-group-1 foo 2 212 212 0 client-2-def example.com client-2
예제에서 이용자 그룹 consumer-group-1 에 세 개의 파티션이 있는 토픽 foo 의 메시지를 이용하는 두 개의 이용자 멤버가 있음을 확인할 수 있습니다. 또한 이용자의 현재 오프셋이 264 이지만 파티션 0 에 있는 마지막 메시지의 오프셋이 267 이기 때문에 파티션 0 에서 이용
중인 이용자 client-1-abc 가 세 개의 메시지 뒤에 있음을 표시합니다.
토픽
Event Streams와 함께 kafka-topics 도구를 사용할 수 있습니다. Zookeeper 액세스가 필요하지 않으므로 도구의 V2.8을 사용하는지 확인하십시오.
kafka-topics 를 사용할 수 있는 시나리오는 새 클러스터에서 다시 작성할 수 있도록 기존 클러스터에서 토픽 및 해당 구성에 대한 정보를 찾는 것입니다. kafka-topics에서 출력된 정보를 사용하여 새 클러스터에서 이름이 동일한 토픽을 작성할 수 있습니다. 토픽 작성 방법에 대한 자세한 정보는 관리 Kafka Java 클라이언트 API 사용 또는 ibmcloud es topic-create 명령을 참조하십시오. 또는, IBM Event Streams 콘솔을 사용할 수도 있습니다.
kafka-topics 도구 실행에서 다음 샘플 출력을 참조하십시오.
bin/kafka-topics.sh --bootstrap-server kafka03-prod01.messagehub.services.us-south.bluemix.net:9093 --command-config vcurr_dal06.properties --describe
Topic:sample-topic PartitionCount:3 ReplicationFactor:3 Configs:min.insync.replicas=2,unclean.leader.election.enable=true,retention.bytes=1073741824,segment.bytes=536870912,retention.ms=86400000
Topic: sample-topic Partition: 0 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
Topic: sample-topic Partition: 1 Leader: 1 Replicas: 1,2,0 Isr: 0,2,1
Topic: sample-topic Partition: 2 Leader: 2 Replicas: 2,1,0 Isr: 0,2,1
Topic:testtopic PartitionCount:1 ReplicationFactor:3 Configs:min.insync.replicas=2,unclean.leader.election.enable=true,retention.bytes=1073741824,segment.bytes=536870912,retention.ms=86400000
Topic: testtopic Partition: 0 Leader: 0 Replicas: 0,2,1 Isr: 0,2
샘플에서 sample-topic 주제에 세 개의 파티션과 세 개의 복제 요소가 있음을 확인할 수 있습니다. 이 예에서는 각 파티션의 리더가 있는 브로커와 동기화되어 있는 복제본 (Isr) 도 표시합니다. 예를 들어, 파티션 0 의 리더는 브로커 0 에 있고 팔로워는 브로커 2 및 1 에 있으며
세 복제본 모두 동기화되어 있습니다. 두 번째 토픽 testtopic 를 보면, 브로커 0, 2 및 1 에 복제되는 하나의 파티션만 있지만 동기화된 복제본 목록에는 0 및 2 만 표시됩니다. 즉, 1 브로커의 팔로어가 뒤쳐져 Isr 목록에 없습니다.
Kafka Streams 재설정
Event Streams와 함께 이 도구를 사용하여 Kafka Streams 애플리케이션의 처리 상태를 재설정하면 스크래치에서 해당 입력을 다시 처리할 수 있습니다. 이 도구를 실행하기 전에 Streams 애플리케이션이 완전히 중지되어야 합니다.
예를 들어, 다음과 같습니다.
kafka-streams-application-reset.sh --bootstrap-servers BOOTSTRAP_ENDPOINTS --config-file CONFIG_FILE --application-id APP_ID
예제에 있는 다음 변수를 고유한 값으로 대체하십시오.
- IBM Cloud 콘솔에서 Event Streams 서비스 신임 정보 탭의 값이 있는 BOOTSTRAP_ENDPOINTS.
- CONFIG_FILE - 구성 파일 경로 포함
- APP_ID - Streams 애플리케이션 ID 포함