Utilizzo degli strumenti della console Kafka con Event Streams
Apache Kafka viene fornito con vari strumenti della console per operazioni di gestione e messaggistica semplici. Puoi utilizzare molti di questi strumenti con Event Streams, anche se Event Streams non consente la connessione al proprio cluster ZooKeeper. Come sviluppato da Kafka, molti degli strumenti che in precedenza richiedevano la connessione a ZooKeeper non hanno più tale requisito.
Questi strumenti della console si trovano nella directory bin
del tuo download Kafka. Puoi scaricare un client da Apache Kafka downloads.
Per fornire le credenziali SASL a questi strumenti, crea un file delle proprietà basato sul seguente esempio:
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
Sostituisci USER e PASSWORD con i valori dalla tua scheda Credenziali del servizio Event Streams nella console IBM Cloud.
Produttore console
Puoi utilizzare lo strumento produttore console con Event Streams. Devi fornire un elenco di broker e le credenziali SASL.
Dopo aver creato il file delle proprietà, è possibile eseguire il produttore della console in un terminale nel modo seguente:
kafka-console-producer.sh --broker-list BOOTSTRAP_ENDPOINTS --producer.config CONFIG_FILE --topic TOPIC_NAME
Sostituisci le seguenti variabili nell'esempio con i tuoi propri valori:
- BOOTSTRAP_ENDPOINTS con il valore dalla scheda Event Streams Service Credentials della console IBM Cloud.
- CONFIG_FILE con il percorso del file di configurazione.
È possibile utilizzare molte delle altre opzioni di questo strumento, ad eccezione di quelle che richiedono accesso a ZooKeeper.
Consumatore console
Puoi utilizzare lo strumento consumatore console con Event Streams. Devi fornire un server di avvio e le credenziali SASL.
Dopo aver creato il file delle proprietà come descritto in precedenza, eseguire il consumer della console in un terminale nel modo seguente:
kafka-console-consumer.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --consumer.config CONFIG_FILE --topic TOPIC_NAME
Sostituisci le seguenti variabili nell'esempio con i tuoi propri valori:
- BOOTSTRAP_ENDPOINTS con il valore dalla scheda Event Streams Service Credentials della console IBM Cloud.
- CONFIG_FILE con il percorso del file di configurazione.
È possibile utilizzare molte delle altre opzioni di questo strumento, ad eccezione di quelle che richiedono accesso a ZooKeeper.
Gruppi di consumer
Puoi utilizzare lo strumento gruppi di consumatori Kafka con Event Streams. Poiché Event Streams non consente la connessione al proprio cluster ZooKeeper, alcune delle opzioni non sono disponibili.
Dopo aver creato il file delle proprietà come descritto in precedenza, eseguire gli strumenti dei gruppi di consumatori in un terminale. Ad esempio, puoi elencare i gruppi di consumatori nel seguente modo:
kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --list --timeout 60000
Sostituisci le seguenti variabili nell'esempio con i tuoi propri valori:
- BOOTSTRAP_ENDPOINTS con il valore dalla scheda Event Streams Service Credentials della console IBM Cloud.
- CONFIG_FILE con il percorso del file di configurazione.
Utilizzando questo strumento, puoi anche visualizzare dettagli come le posizioni correnti dei consumatori, il loro ritardo e l'ID client di ogni partizione di un gruppo. Ad esempio:
kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --describe --group GROUP --timeout 60000
Sostituisci GROUP nell'esempio con un nome del gruppo per cui desideri richiamare i dettagli.
Vedi il seguente output di esempio dall'esecuzione dello strumento 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
Dall'esempio, è possibile vedere che il gruppo di consumatori consumer-group-1
ha due membri che utilizzano i messaggi dell'argomento foo
con tre partizioni. Mostra inoltre che il consumer client-1-abc
che utilizza dalla partizione 0
è in ritardo di tre messaggi poiché l'offset corrente del consumer è 264
ma l'offset dell'ultimo messaggio sulla partizione 0
è 267
.
Argomenti
Puoi utilizzare lo strumento kafka-topics con Event Streams. Assicurati di utilizzare V2.8 dello strumento, poiché non richiede l'accesso Zookeeper.
Uno scenario in cui potresti voler utilizzare kafka - topics è quello di trovare le informazioni sui tuoi argomenti e la relativa configurazione in un cluster esistente in modo da poterli ricreare in un nuovo cluster. Puoi utilizzare le informazioni nell'output di kafka-topics per creare degli argomenti denominati nello stesso modo nel nuovo cluster. Per ulteriori informazioni su come creare gli argomenti, vedi Utilizzo dell'API client Java Kafka di amministrazione o il comando ibmcloud es topic-create. In alternativa, puoi anche utilizzare la console IBM Event Streams.
Vedi il seguente output di esempio dall'esecuzione dello strumento 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
Dall'esempio, è possibile vedere che l'argomento sample-topic
ha tre partizioni e un fattore di replica di tre. L'esempio mostra anche su quale broker si trova il leader di ciascuna partizione e quali repliche sono sincronizzate
(Isr
). Ad esempio, il leader della partizione 0
si trova sul broker 0
, i follower si trovano sui broker 2
e 1
e tutte e tre le repliche sono sincronizzate. Se si guarda il secondo
argomento testtopic
, ha solo una partizione, che viene replicata sui broker 0
, 2
e 1
, ma l'elenco di repliche in - sync mostra solo 0
e 2
. Ciò significa che il seguente
broker 1
è in ritardo e pertanto non è presente nell'elenco Isr
.
Reimpostazione di Kafka Streams
Puoi utilizzare questo strumento con Event Streams per reimpostare lo stato di elaborazione di un'applicazione Kafka Streams, in modo da poterne rielaborare l'input da zero. Prima di eseguire questo strumento, assicurati che la tua applicazione Streams sia stata completamente arrestata.
Ad esempio:
kafka-streams-application-reset.sh --bootstrap-servers BOOTSTRAP_ENDPOINTS --config-file CONFIG_FILE --application-id APP_ID
Sostituisci le seguenti variabili nell'esempio con i tuoi propri valori:
- BOOTSTRAP_ENDPOINTS con il valore dalla scheda Event Streams Service Credentials della console IBM Cloud.
- CONFIG_FILE con il percorso del file di configurazione.
- APP_ID con l'ID della tua applicazione Streams.