Utilización de las herramientas de la consola de Kafka con Event Streams
Apache Kafka se suministra con diversas herramientas de consola para operaciones sencillas de administración y mensajería. Puede utilizar muchas de ellas con Event Streams, aunque Event Streams no permite la conexión con su clúster de ZooKeeper. A medida que se desarrolla Kafka, muchas de las herramientas que anteriormente requerían conexión con ZooKeeper ya no tienen ese requisito.
Estas herramientas de consola se encuentran en el directorio bin
de la descarga de Kafka. Puede descargar un cliente desde Descargas deApache Kafka.
Para proporcionar las credenciales de SASL a estas herramientas, cree un archivo de propiedades basado en el siguiente ejemplo:
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
Sustituya USER y PASSWORD por los valores del separador Credenciales de servicio de Event Streams en la consola de IBM Cloud.
Productor de la consola
Puede utilizar la herramienta de productor de consola de Kafka con Event Streams. Debe suministrar una lista de intermediarios y credenciales de SASL.
Después de crear el archivo de propiedades, puede ejecutar el productor de consola en un terminal como se indica a continuación:
kafka-console-producer.sh --broker-list BOOTSTRAP_ENDPOINTS --producer.config CONFIG_FILE --topic TOPIC_NAME
Sustituya las siguientes variables del ejemplo por sus propios valores:
- BOOTSTRAP_ENDPOINTS con el valor de la pestaña Event Streams Credenciales de servicio en la consola de IBM Cloud.
- CONFIG_FILE por la vía de acceso del archivo de configuración.
Puede utilizar muchas de las otras opciones de esta herramienta, excepto las que requieren acceso a ZooKeeper.
Consumidor de consola
Puede utilizar la herramienta de consumidor de consola de Kafka con Event Streams. Debe suministrar un servidor de programa de arranque y credenciales de SASL.
Después de haber creado el archivo de propiedades tal como se ha descrito anteriormente, ejecute el consumidor de la consola en un terminal como se indica a continuación:
kafka-console-consumer.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --consumer.config CONFIG_FILE --topic TOPIC_NAME
Sustituya las siguientes variables del ejemplo por sus propios valores:
- BOOTSTRAP_ENDPOINTS con el valor de la pestaña Event Streams Credenciales de servicio en la consola de IBM Cloud.
- CONFIG_FILE por la vía de acceso del archivo de configuración.
Puede utilizar muchas de las otras opciones de esta herramienta, excepto las que requieren acceso a ZooKeeper.
Grupos de consumidores
Puede utilizar la herramienta de grupos de consumidores de Kafka con Event Streams. Puesto que Event Streams no permite la conexión con su clúster de ZooKeeper, algunas de las opciones no están disponibles.
Después de haber creado el archivo de propiedades tal como se ha descrito anteriormente, ejecute las herramientas de grupos de consumidores en un terminal. Por ejemplo, puede obtener una lista de los grupos de consumidores del siguiente modo:
kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --list --timeout 60000
Sustituya las siguientes variables del ejemplo por sus propios valores:
- BOOTSTRAP_ENDPOINTS con el valor de la pestaña Event Streams Credenciales de servicio en la consola de IBM Cloud.
- CONFIG_FILE por la vía de acceso del archivo de configuración.
Con esta herramienta también puede mostrar detalles como las posiciones actuales de los consumidores, su retardo y el id de cliente correspondiente a cada partición de un grupo. Por ejemplo:
kafka-consumer-groups.sh --bootstrap-server BOOTSTRAP_ENDPOINTS --command-config CONFIG_FILE --describe --group GROUP --timeout 60000
Sustituya GROUP en el ejemplo por el nombre de grupo sobre el que desea recuperar detalles.
Consulte la siguiente salida de ejemplo de la ejecución de la herramienta 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
En el ejemplo, puede ver que el grupo de consumidores consumer-group-1
tiene dos miembros de consumidor que consumen mensajes del tema foo
con tres particiones. También muestra que el consumidor client-1-abc
que está consumiendo de la partición 0
está tres mensajes por detrás porque el desplazamiento actual del consumidor es 264
pero el desplazamiento del último mensaje en la partición 0
es 267
.
Temas
Puede utilizar la herramienta kafka-topics con Event Streams. Asegúrese de que utiliza la versión V2.8 de la herramienta, ya que no necesita acceso de Zookeeper.
Un escenario en el que es posible que desee utilizar kafka-topics es para obtener información sobre los temas y su configuración en un clúster existente para que pueda volver a crearlos en un clúster nuevo. Puede utilizar la información resultante de kafka-topics para crear temas con los mismos nombres en el nuevo clúster. Para obtener más información sobre cómo crear temas, consulte Utilización de la API de cliente Java de Kafka de administración o el mandato ibmcloud es topic-create. Como alternativa, también puede utilizar la consola de IBM Event Streams.
Consulte la siguiente salida de ejemplo de la ejecución de la herramienta 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
En el ejemplo, puede ver que el tema sample-topic
tiene tres particiones y un factor de réplica de tres. El ejemplo también muestra en qué intermediario está el líder de cada partición y qué réplicas están sincronizadas (Isr
).
Por ejemplo, el líder de la partición 0
está en el intermediario 0
, los seguidores están en los intermediarios 2
y 1
y las tres réplicas están sincronizadas. Si observa el segundo tema testtopic
,
sólo tiene una partición, que se replica en los intermediarios 0
, 2
y 1
, pero la lista de réplicas en sincronización sólo muestra 0
y 2
. Esto significa que el seguidor en el
intermediario 1
se está quedando atrás y, por lo tanto, no está en la lista Isr
.
Restablecimiento de Kafka Streams
Puede utilizar esta herramienta con Event Streams para restablecer el estado de proceso de una aplicación Kafka Streams a fin de poder volver a procesar su entrada desde cero. Antes de ejecutar esta herramienta, asegúrese de que la aplicación Streams se haya detenido por completo.
Por ejemplo:
kafka-streams-application-reset.sh --bootstrap-servers BOOTSTRAP_ENDPOINTS --config-file CONFIG_FILE --application-id APP_ID
Sustituya las siguientes variables del ejemplo por sus propios valores:
- BOOTSTRAP_ENDPOINTS con el valor de la pestaña Event Streams Credenciales de servicio en la consola de IBM Cloud.
- CONFIG_FILE por la vía de acceso del archivo de configuración.
- APP_ID por el ID de la aplicación Streams.