IBM Cloud Docs
Utilización de las herramientas de la consola de Kafka con Event Streams

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.