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 에 있고 팔로워는 브로커 21 에 있으며 세 복제본 모두 동기화되어 있습니다. 두 번째 토픽 testtopic 를 보면, 브로커 0, 21 에 복제되는 하나의 파티션만 있지만 동기화된 복제본 목록에는 02 만 표시됩니다. 즉, 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 포함