Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-07 GMT+08:00

Acceso a una instancia de Kafka sin SASL

DMS for Kafka de Huawei Cloud proporciona las instancias de Kafka, que están físicamente aisladas y ocupadas exclusivamente por cada inquilino. Después de crear una instancia Kafka, puede usar un cliente Kafka de código abierto para crear y recuperar mensajes en la instancia.

Esta sección describe cómo usar un cliente Kafka de código abierto para acceder a una instancia Kafka si el acceso SASL no está habilitado para la instancia.

Para obtener más información sobre cómo usar los clientes Kafka en diferentes idiomas, visite https://cwiki.apache.org/confluence/display/KAFKA/Clients.

  • A continuación se describe el procedimiento para acceder a una instancia de Kafka mediante CLI. Para acceder a una instancia en su código de servicio, consulte la Guía para desarrolladores.
  • Para las instancias adquiridas en julio de 2020 y posteriores, el servidor Kafka permite un máximo de 1000 conexiones desde cada dirección IP. Para las instancias adquiridas antes de julio de 2020, el servidor Kafka permite un máximo de 200 conexiones desde cada dirección IP. El exceso de conexiones será rechazado. Puede cambiar el límite haciendo referencia a Modificación de parámetros de Kafka.

Prerrequisitos:

  • Las reglas del grupo de seguridad se han configurado correctamente.

    Se puede acceder a una instancia de Kafka con SASL deshabilitado dentro de una VPC o a través de redes públicas. Asegúrese de que las reglas del grupo de seguridad se hayan configurado correctamente para la instancia. Para obtener más información sobre los requisitos de configuración del grupo de seguridad, consulte Tabla 2.

  • Se ha obtenido la dirección de conexión de instancia.
    • Para el acceso intra-VPC, utilice el puerto 9092. Obtenga la dirección de conexión de instancia en la página de detalles de instancia.
      Figura 1 Obtención de direcciones de conexión de instancia Kafka para el acceso intra-VPC sin SASL
    • Para acceso público, utilice el puerto 9094. Obtenga la dirección de acceso a la instancia en la página de detalles de la instancia.
      Figura 2 Obtención de direcciones de conexión de instancia Kafka para acceso público sin SASL
  • Se ha creado un tema para la instancia de Kafka. De lo contrario, cree un tema según las instrucciones Cómo crear un tema.
  • Kafka CLI v1.1.0, v2.7, or v2.3.0 está disponible. Asegúrese de que la instancia de Kafka y la CLI son de la misma versión.
  • Se ha creado un ECS y sus configuraciones de VPC, subred y grupo de seguridad son las mismas que las de la instancia de Kafka. JDK v1.8.111 o posterior se ha instalado en ECS y se han configurado las variables de entorno relacionadas.

Acceso a la instancia mediante CLI

Lo siguiente usa Linux como ejemplo.

  1. Descomprima el paquete Kafka CLI.Acceda al directorio donde está almacenado el paquete CLI y ejecute el siguiente comando para descomprimir el paquete:

    tar -zxf [kafka_tar]

    En el comando anterior, [kafka_tar] indica el nombre del paquete CLI.

    Por ejemplo:

    tar -zxf kafka_2.11-2.3.0.tgz

  2. Acceda al directorio /bin de la CLI de Kafka.

    En Windows, necesita acceder al directorio /bin/windows.

  3. Ejecute el siguiente comando para crear mensajes:

    ./kafka-console-producer.sh --broker-list ${connection-address} --topic ${topic-name}

    Descripción del parámetro:

    • {connection-address}: la dirección obtenida en Prerrequisitos. Para el acceso público, utilice Instance Address (Public Network). Para el acceso intra-VPC, utilice Instance Address (Private Network).
    • {topic-name}: el nombre del tema creado para la instancia de Kafka

    En el siguiente ejemplo se usan direcciones de conexión 10.3.196.45:9094,10.78.42.127:9094,10.4.49.103:9094. Después de ejecutar el comando anterior, puede enviar un mensaje a la instancia de Kafka escribiéndolo y presionando Enter. Cada línea de contenido se envía como un mensaje.

    [root@ecs-kafka bin]# ./kafka-console-producer.sh --broker-list 10.3.196.45:9094,10.78.42.127:9094,10.4.49.103:9094  --topic topic-demo
    >Hello
    >DMS
    >Kafka!
    >^C[root@ecs-kafka bin]# 

    Para dejar de crear mensajes, presione Ctrl+C para salir.

  4. Ejecute el siguiente comando para recuperar mensajes:

    ./kafka-console-consumer.sh --bootstrap-server ${connection-address} --topic ${topic-name} --group ${consumer-group-name} --from-beginning

    Descripción del parámetro:

    • {connection-address}: la dirección obtenida en Prerrequisitos. Para el acceso público, utilice Instance Address (Public Network). Para el acceso intra-VPC, utilice Instance Address (Private Network).
    • {topic-name}: el nombre del tema creado para la instancia de Kafka
    • {consumer-group-name}: el nombre del grupo de consumidores establecido en función de sus requisitos de servicio. Asegúrese de que el nombre del grupo de consumidores en la línea de comandos es el mismo que el especificado en el archivo de configuración, si lo hay. De lo contrario, la recuperación de mensajes puede fallar.

    Ejemplo:

    [root@ecs-kafka bin]#  ./kafka-console-consumer.sh --bootstrap-server 10.3.196.45:9094,10.78.42.127:9094,10.4.49.103:9094 --topic topic-demo --group order-test --from-beginning
    Kafka!
    DMS
    Hello
    ^CProcessed a total of 3 messages
    [root@ecs-kafka bin]# 

    Para detener la recuperación de mensajes, presione Ctrl+C para salir.