Si un cliente SDK no logra enviar o recibir mensajes, o falla al conectarse a una instancia, utilice la herramienta de comprobación de estado de Kafka para verificar la salud de la instancia. Esta herramienta comprueba la conectividad de red y el estado de la instancia. Si la herramienta confirma que la instancia funciona correctamente, revise la conexión de red y la configuración de código de su cliente.
Requisitos previos
Descargue y extraiga la herramienta de comprobación de estado kafka-checker.zip.
Cree un topic and a consumer group para probar el envío y el consumo de mensajes.
Prueba de conectividad de red
-
Obtenga un endpoint.
Inicie sesión en la consola de ApsaraMQ for Kafka.
En la sección Resource Distribution de la página Overview, seleccione una región.
En la página Instances, haga clic en el nombre de la instancia de destino.
-
En la sección Endpoint Information de la página Instance Details, obtenga un endpoint para su instancia.
Esta sección muestra tres tipos de endpoints: un VPC default endpoint (red VPC, protocolo PLAINTEXT), un internet SSL endpoint (internet, protocolo SASL_SSL) y un VPC SASL endpoint (red VPC, protocolo SASL_PLAINTEXT). Elija y copie el dominio del endpoint según sus requisitos de conexión.
NotaPara obtener más información sobre las diferencias entre los endpoints, consulte Comparison of endpoints.
-
Ejecute una prueba de telnet para comprobar la conectividad del endpoint. El siguiente ejemplo utiliza un sistema operativo Linux.
-
Inicie sesión en su sistema Linux y vaya al directorio donde se encuentra la herramienta KafkaChecker.jar.
cd /usr/opt/kafka-checkerReemplace
/usr/opt/kafka-checkercon la ruta local real. -
Ejecute el siguiente comando para probar la conexión a ApsaraMQ for Kafka.
java -jar KafkaChecker.jar telnet -s <endpoint-string>Por ejemplo, si su cliente se conecta a ApsaraMQ for Kafka mediante un VPC default endpoint, ejecute el siguiente comando:
java -jar KafkaChecker.jar telnet -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092,alikafka-pre-cn-zv**********-2-vpc.alikafka.aliyuncs.com:9092,alikafka-pre-cn-zv**********-3-vpc.alikafka.aliyuncs.com:9092.NotaCuando se conecte mediante un endpoint de Virtual Private Cloud (VPC), su dispositivo debe estar en la misma VPC que la instancia.
Una salida similar a la siguiente indica que la conexión de red se estableció correctamente.
telnet xxx 9092 success telnet xxx:xxx:xxx 9092 success telnet xxx:xxx:xxx 9092 successSi se devuelve la siguiente salida, significa que no se configuró una lista blanca para la instancia de ApsaraMQ for Kafka. Para obtener más información, consulte Configure a whitelist.
telnet xxx 9092 failure, please add ip to white list in Alikafka console telnet xxx 9092 failure, please add ip to white list in Alikafka console telnet xxx 9092 failure, please add ip to white list in Alikafka console
-
Prueba de envío de mensajes
El envío de mensajes genera datos de prueba. Para evitar afectar los datos de producción, cree un tema específicamente para las pruebas de comprobación de estado.
Ejecute el comando correspondiente a su tipo de endpoint para enviar un mensaje.
-
Conéctese mediante un VPC default endpoint en el puerto 9092:
java -jar KafkaChecker.jar send -s <endpoint-domain>:9092 --topic <topic-name>Ejemplo:
java -jar KafkaChecker.jar send -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092 --topic test -
Conéctese mediante un internet SSL endpoint en el puerto 9093. SASL admite la autenticación con el mecanismo PLAIN o SCRAM-SHA-256. Ejecute el comando correspondiente a su mecanismo de autenticación.
NotaEn un entorno de internet, el usuario SASL predeterminado de una instancia utiliza el mecanismo PLAIN para la autenticación.
Puede crear usuarios SASL para lograr un control de acceso más detallado y configurar el mecanismo de autenticación como PLAIN o SCRAM-SHA-256. Para obtener más información, consulte Grant permissions to SASL users.
Mecanismo PLAIN
java -jar KafkaChecker.jar send -sm PLAIN -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name>Ejemplo:
java -jar KafkaChecker.jar send -sm PLAIN -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic testMecanismo SCRAM-SHA-256
java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name>Ejemplo:
java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic test -
Conéctese mediante un VPC SASL endpoint en el puerto 9094. SASL admite la autenticación con el mecanismo PLAIN o SCRAM-SHA-256. Ejecute el comando correspondiente a su mecanismo de autenticación.
Mecanismo PLAIN
java -jar KafkaChecker.jar send -sm PLAIN -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name>Ejemplo:
java -jar KafkaChecker.jar send -sm PLAIN -sp true -u test -psw test**** -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9094 --topic testMecanismo SCRAM-SHA-256
java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name>Ejemplo:
java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -sp true -u test -psw test**** -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9094 --topic test
Una salida similar a la siguiente indica que los mensajes se enviaron correctamente.
[2021-08-27 11:29:18.838]Produce ok number:0 p:2 offset:21 response:test-2@21 cost:1342 ms
[2021-08-27 11:29:19.252]Produce ok number:1 p:2 offset:22 response:test-2@22 cost:410 ms
[2021-08-27 11:29:19.254]Produce ok number:1 p:6 offset:9 response:test-6@9 cost:412 ms
[2021-08-27 11:29:19.301]Produce ok number:2 p:5 offset:25 response:test-5@25 cost:47 ms
[2021-08-27 11:29:19.302]Produce ok number:2 p:4 offset:20 response:test-4@20 cost:48 ms
[2021-08-27 11:29:19.347]Produce ok number:3 p:1 offset:19 response:test-1@19 cost:45 ms
[2021-08-27 11:29:19.348]Produce ok number:3 p:8 offset:17 response:test-8@17 cost:46 ms
Prueba de consumo de mensajes
Ejecute el comando correspondiente a su tipo de endpoint para consumir mensajes.
-
Conéctese mediante un VPC default endpoint en el puerto 9092:
java -jar KafkaChecker.jar pull -s <endpoint-domain>:9092 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10Ejemplo:
java -jar KafkaChecker.jar pull -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092 --topic test --group test --partition 0 --offset 0 --count 10 -
Conéctese mediante un internet SSL endpoint en el puerto 9093. SASL admite la autenticación con el mecanismo PLAIN o SCRAM-SHA-256. Ejecute el comando correspondiente a su mecanismo de autenticación.
NotaEn un entorno de internet, el usuario SASL predeterminado de una instancia utiliza el mecanismo PLAIN para la autenticación.
Puede crear usuarios SASL para lograr un control de acceso más detallado y configurar el mecanismo de autenticación como PLAIN o SCRAM-SHA-256. Para obtener más información, consulte Grant permissions to SASL users.
Mecanismo PLAIN
java -jar KafkaChecker.jar pull -sm PLAIN -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10Ejemplo:
java -jar KafkaChecker.jar pull -sm PLAIN -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic test --group test --partition 0 --offset 0 --count 10Mecanismo SCRAM-SHA-256
java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10Ejemplo:
java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic test --group test --partition 0 --offset 0 --count 10 -
Conéctese mediante un VPC SASL endpoint en el puerto 9094. SASL admite la autenticación con el mecanismo PLAIN o SCRAM-SHA-256. Ejecute el comando correspondiente a su mecanismo de autenticación.
Mecanismo PLAIN
java -jar KafkaChecker.jar pull -sm PLAIN -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10Ejemplo:
java -jar KafkaChecker.jar pull -sm PLAIN -sp true -u test -psw test**** -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9094 --topic test --group test --partition 0 --offset 0 --count 10Mecanismo SCRAM-SHA-256
java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10Ejemplo:
java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -sp true -u test -psw test**** -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9094 --topic test --group test --partition 0 --offset 0 --count 10
Una salida similar a la siguiente indica que los mensajes se consumieron correctamente.
[2021-08-27 11:32:37.917]Pull Succ topic:test partition:0 offset:0 key:demo value: time:2021-08-10 15:08:10.629 cha:1455867288
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:1 key:demo value: time:2021-08-10 15:16:08.386 cha:1455389532
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:2 key:demo value: time:2021-08-10 15:16:50.374 cha:1455347544
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:3 key:null value: time:2021-08-18 21:08:23.532 cha:743054386
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:4 key:null value: time:2021-08-18 21:08:23.778 cha:743054140
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:5 key:null value: time:2021-08-18 21:08:23.892 cha:743054026
[2021-08-27 11:32:37.918]Pull Succ topic:test partition:0 offset:6 key:null value: time:2021-08-18 21:08:24.352 cha:743053566
[2021-08-27 11:32:37.919]Pull Succ topic:test partition:0 offset:7 key:null value: time:2021-08-18 21:08:24.452 cha:743053467
Documentos relacionados
Para obtener información sobre los paquetes SDK relacionados, consulte SDK overview.