Si un client SDK ne parvient pas à envoyer ou recevoir des messages, ou échoue à se connecter à une instance, utilisez l'outil de vérification de l'état Kafka pour vérifier la santé de l'instance. Cet outil valide la connectivité réseau et l'état de l'instance. Si l'outil confirme que l'instance est saine, examinez la connexion réseau de votre client ainsi que la configuration du code.
Prérequis
Téléchargez et extrayez l'outil de vérification de l'état kafka-checker.zip.
Créez un topic et un groupe de consommateurs pour tester l'envoi et la consommation de messages.
Tester la connectivité réseau
-
Obtenez un endpoint.
Connectez-vous à la console ApsaraMQ for Kafka.
Dans la section Resource Distribution de la page Overview, sélectionnez une région.
Sur la page Instances, cliquez sur le nom de l'instance cible.
-
Dans la section Endpoint Information de la page Instance Details, obtenez un endpoint pour votre instance.
Cette section affiche trois types d'endpoints : un VPC default endpoint (réseau VPC, protocole PLAINTEXT), un internet SSL endpoint (Internet, protocole SASL_SSL) et un VPC SASL endpoint (réseau VPC, protocole SASL_PLAINTEXT). Choisissez et copiez le domaine de l'endpoint en fonction de vos exigences de connexion.
RemarquePour plus d'informations sur les différences entre les endpoints, consultez la rubrique Comparaison des endpoints.
-
Exécutez un test telnet pour vérifier la connectivité de l'endpoint. L'exemple suivant utilise un système d'exploitation Linux.
-
Connectez-vous à votre système Linux et accédez au répertoire où se trouve l'outil KafkaChecker.jar.
cd /usr/opt/kafka-checkerRemplacez
/usr/opt/kafka-checkerpar le chemin local réel. -
Exécutez la commande suivante pour tester la connexion à ApsaraMQ for Kafka.
java -jar KafkaChecker.jar telnet -s <endpoint-string>Par exemple, si votre client se connecte à ApsaraMQ for Kafka via un VPC default endpoint, exécutez la commande suivante :
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.RemarqueLorsque vous vous connectez via un endpoint Virtual Private Cloud (VPC), votre appareil doit se trouver dans le même VPC que l'instance.
Une sortie similaire à la suivante indique que la connexion réseau a réussi.
telnet xxx 9092 success telnet xxx:xxx:xxx 9092 success telnet xxx:xxx:xxx 9092 successSi la sortie suivante est renvoyée, aucune liste d'autorisation n'est configurée pour l'instance ApsaraMQ for Kafka. Pour plus d'informations, consultez la rubrique Configurer une liste d'autorisation.
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
-
Tester l'envoi de messages
L'envoi de messages génère des données de test. Pour éviter d'affecter les données de production, créez un topic spécifiquement dédié aux tests de vérification de l'état.
Exécutez la commande correspondant à votre type d'endpoint pour envoyer un message.
-
Connexion via un VPC default endpoint sur le port 9092 :
java -jar KafkaChecker.jar send -s <endpoint-domain>:9092 --topic <topic-name>Exemple :
java -jar KafkaChecker.jar send -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092 --topic test -
Connexion via un internet SSL endpoint sur le port 9093. SASL prend en charge l'authentification avec le mécanisme PLAIN ou SCRAM-SHA-256. Exécutez la commande correspondant à votre mécanisme d'authentification.
RemarqueDans un environnement Internet, l'utilisateur SASL par défaut d'une instance utilise le mécanisme PLAIN pour l'authentification.
Vous pouvez créer des utilisateurs SASL pour un contrôle d'accès plus granulaire et configurer le mécanisme d'authentification sur PLAIN ou SCRAM-SHA-256. Pour plus d'informations, consultez la rubrique Accorder des autorisations aux utilisateurs SASL.
Mécanisme PLAIN
java -jar KafkaChecker.jar send -sm PLAIN -ss true -u <username> -psw <password> -s <endpoint-domain>:9093 --topic <topic-name>Exemple :
java -jar KafkaChecker.jar send -sm PLAIN -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic testMécanisme 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>Exemple :
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 -
Connexion via un VPC SASL endpoint sur le port 9094. SASL prend en charge l'authentification avec le mécanisme PLAIN ou SCRAM-SHA-256. Exécutez la commande correspondant à votre mécanisme d'authentification.
Mécanisme PLAIN
java -jar KafkaChecker.jar send -sm PLAIN -sp true -u <username> -psw <password> -s <endpoint-domain>:9094 --topic <topic-name>Exemple :
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 testMécanisme 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>Exemple :
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
Une sortie similaire à la suivante indique que les messages ont été envoyés avec succès.
[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
Tester la consommation de messages
Exécutez la commande correspondant à votre type d'endpoint pour consommer des messages.
-
Connexion via un VPC default endpoint sur le port 9092 :
java -jar KafkaChecker.jar pull -s <endpoint-domain>:9092 --topic <topic-name> --group <group-name> --partition 0 --offset 0 --count 10Exemple :
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 -
Connexion via un internet SSL endpoint sur le port 9093. SASL prend en charge l'authentification avec le mécanisme PLAIN ou SCRAM-SHA-256. Exécutez la commande correspondant à votre mécanisme d'authentification.
RemarqueDans un environnement Internet, l'utilisateur SASL par défaut d'une instance utilise le mécanisme PLAIN pour l'authentification.
Vous pouvez créer des utilisateurs SASL pour un contrôle d'accès plus granulaire et configurer le mécanisme d'authentification sur PLAIN ou SCRAM-SHA-256. Pour plus d'informations, consultez la rubrique Accorder des autorisations aux utilisateurs SASL.
Mécanisme 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 10Exemple :
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 10Mécanisme 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 10Exemple :
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 -
Connexion via un VPC SASL endpoint sur le port 9094. SASL prend en charge l'authentification avec le mécanisme PLAIN ou SCRAM-SHA-256. Exécutez la commande correspondant à votre mécanisme d'authentification.
Mécanisme 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 10Exemple :
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 10Mécanisme 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 10Exemple :
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
Une sortie similaire à la suivante indique que les messages ont été consommés avec succès.
[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
Documentation connexe
Pour obtenir des informations sur les packages SDK associés, consultez la rubrique Présentation des SDK.