IBM Cloud Docs
Tools der Kafka-Konsole mit Event Streams verwenden

Tools der Kafka-Konsole mit Event Streams verwenden

Apache Kafka wird mit verschiedenen Konsolentools für einfache Verwaltungs-und Messaging-Operationen geliefert. Viele dieser Tools können mit Event Streams verwendet werden, Event Streams lässt jedoch keine Verbindung zum ZooKeeper-Cluster zu. Bei der Entwicklung von Kafka haben viele Tools, für die zuvor eine Verbindung zu ZooKeeper erforderlich war, diese Anforderung nicht mehr.

Diese Konsolentools befinden sich im Verzeichnis bin Ihres Kafka-Downloads. Sie können einen Client von Apache Kafka-Downloadsherunterladen.

Zur Angabe der SASL-Berechtigungsnachweise für diese Tools erstellen Sie eine Eigenschaftendatei auf der Basis des folgenden Beispiels:

    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

Ersetzen Sie USER und PASSWORD durch die Werte auf der Event Streams-Registerkarte Serviceberechtigungsnachweise in der IBM Cloud-Konsole.

Konsolenproducer

Sie können das Konsolenproducer-Tool von Kafka mit Event Streams verwenden. Sie müssen eine Liste mit Brokern und SASL-Berechtigungsnachweise angeben.

Nachdem Sie die Eigenschaftendatei erstellt haben, können Sie den Konsolenproduzenten wie folgt in einem Terminal ausführen:

   kafka-console-producer.sh --broker-list BOOTSTRAP_ENDPOINTS --producer.config CONFIG_FILE --topic TOPIC_NAME

Ersetzen Sie die folgenden Variablen in dem Beispiel durch eigene Werte:

  • BOOTSTRAP_ENDPOINTS mit dem Wert aus der Registerkarte Event Streams Serviceberechtigungsnachweise in der IBM Cloud-Konsole.
  • Ersetzen Sie CONFIG_FILE durch den Pfad der Konfigurationsdatei.

Sie können viele der anderen Optionen dieses Tools verwenden, mit Ausnahme der Optionen, die Zugriff auf ZooKeepererfordern.

Konsolenconsumer

Sie können das Konsolenconsumer-Tool von Kafka mit Event Streams verwenden. Sie müssen einen Bootstrap-Server und SASL-Berechtigungsnachweise angeben.

Nachdem Sie die Eigenschaftendatei wie oben beschrieben erstellt haben, führen Sie den Konsolenconsumer wie folgt in einem Terminal aus:

   kafka-console-consumer.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --consumer.config CONFIG_FILE --topic TOPIC_NAME

Ersetzen Sie die folgenden Variablen in dem Beispiel durch eigene Werte:

  • BOOTSTRAP_ENDPOINTS mit dem Wert aus der Registerkarte Event Streams Serviceberechtigungsnachweise in der IBM Cloud-Konsole.
  • Ersetzen Sie CONFIG_FILE durch den Pfad der Konfigurationsdatei.

Sie können viele der anderen Optionen dieses Tools verwenden, mit Ausnahme der Optionen, die Zugriff auf ZooKeepererfordern.

Konsumentengruppen

Sie können das Consumergruppentool von Kafka mit Event Streams verwenden. Da Event Streams keine Verbindung zum ZooKeeper-Cluster zulässt, stehen einige der Optionen nicht zur Verfügung.

Nachdem Sie die Eigenschaftendatei wie zuvor beschrieben erstellt haben, führen Sie die Tools für die Consumergruppen in einem Terminal aus. Zum Beispiel können Sie die Consumergruppen wie folgt auflisten:

   kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --list --timeout 60000

Ersetzen Sie die folgenden Variablen in dem Beispiel durch eigene Werte:

  • BOOTSTRAP_ENDPOINTS mit dem Wert aus der Registerkarte Event Streams Serviceberechtigungsnachweise in der IBM Cloud-Konsole.
  • Ersetzen Sie CONFIG_FILE durch den Pfad der Konfigurationsdatei.

Mit diesem Tool können Sie auch Details anzeigen, wie z. B. die aktuellen Positionen der Consumer, ihre Verzögerung und die Client-ID für die einzelnen Partitionen einer Gruppe. Beispiel:

   kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --describe --group GROUP --timeout 60000

Ersetzen Sie GROUP im Beispiel durch den Gruppennamen, für den Details abgerufen werden sollen.

Die folgende Beispielausgabe zeigt die Ausführung des Tools 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

Im Beispiel sehen Sie, dass die Consumergruppe consumer-group-1 zwei Consumermitglieder hat, die Nachrichten aus dem Topic foo mit drei Partitionen konsumieren. Sie zeigt außerdem, dass der Consumer client-1-abc, der von Partition 0 konsumiert wird, drei Nachrichten zurückliegt, da der aktuelle Offset des Consumer 264 ist, aber der Offset der letzten Nachricht auf Partition 0 ist 267.

Themen

Sie können das Tool kafka-topics mit Event Streams verwenden. Stellen Sie sicher, dass Sie V2.8 des Tools verwenden, da es keinen Zookeeper-Zugriff erfordert.

Ein Szenario, in dem Sie kafka-topics verwenden können, besteht darin, Informationen zu Ihren Topics und deren Konfiguration in einem vorhandenen Cluster zu ermitteln, damit Sie sie in einem neuen Cluster erneut erstellen können. Sie können die Informationen, die von kafka-topics ausgegeben werden, verwenden, um dieselben benannten Topics im neuen Cluster zu erstellen. Weitere Informationen zum Erstellen von Topics finden Sie unter Verwaltungs-API von Kafka-Java-Client verwenden oder Befehl ibmcloud es topic-create. Alternativ können Sie auch die IBM Event Streams-Konsole verwenden.

Sehen Sie sich die folgende Beispielausgabe nach der Ausführung des Tools kafka-topics an:

   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

Anhand des Beispiels sehen Sie, dass das Thema sample-topic drei Partitionen und einen Replikationsfaktor von drei hat. Das Beispiel zeigt außerdem, auf welchem Broker sich der Leader der einzelnen Partitionen befindet und welche Replikate synchron sind (Isr). Beispiel: Der Leader der Partition 0 befindet sich auf Broker 0, die Follower befinden sich auf Brokern 2 und 1 und alle drei Replikate sind synchron. Wenn Sie sich das zweite Thema testtopic ansehen, hat es nur eine Partition, die auf den Brokern 0, 2 und 1 repliziert wird, aber in der Liste der synchronen Replikate werden nur 0 und 2 angezeigt. Dies bedeutet, dass der Follower im Broker 1zurückfällt und daher nicht in der Liste Israufgeführt ist.

Kafka-Tool zum Zurücksetzen von Streams

Sie können dieses Tool mit Event Streams verwenden, um den Verarbeitungsstatus einer Kafka-Streams-Anwendung zurückzusetzen, sodass die Eingabe von Beginn an erneut verarbeitet werden kann. Stellen Sie vor der Ausführung dieses Tools sicher, dass die Streams-Anwendung vollständig gestoppt ist.

Beispiel:

   kafka-streams-application-reset.sh --bootstrap-servers BOOTSTRAP_ENDPOINTS --config-file CONFIG_FILE --application-id APP_ID

Ersetzen Sie die folgenden Variablen in dem Beispiel durch eigene Werte:

  • BOOTSTRAP_ENDPOINTS mit dem Wert aus der Registerkarte Event Streams Serviceberechtigungsnachweise in der IBM Cloud-Konsole.
  • Ersetzen Sie CONFIG_FILE durch den Pfad der Konfigurationsdatei.
  • Ersetzen Sie APP_ID durch die ID der Streams-Anwendung.