实例运行健康自检指南

更新时间:
复制为 MD 格式

当客户端使用SDK无法收发消息或无法连接实例时,您可以使用Kafka的自检工具对实例的健康状态进行自检,检查网络是否连通、实例状态是否异常。若实例无异常,请检查网络是否连通、实例状态是否异常、客户端代码配置是否正确以排除您的客户端代码存在问题。

前提条件

网络连接测试

  1. 获取接入点。

    1. 登录云消息队列 Kafka 版控制台

    2. 概览页面的资源分布区域,选择地域。

    3. 实例列表页面,单击目标实例名称。

    4. 实例详情页面的接入点信息区域,获取实例的接入点。

      该区域展示三种接入点:默认接入点(VPC 网络,PLAINTEXT 协议)、SSL 接入点(公网,SASL_SSL 协议)和 SASL 接入点(VPC 网络,SASL_PLAINTEXT 协议)。根据业务需要选择对应接入点并复制其域名地址。

      说明

      不同接入点的差异,请参见接入点对比

  2. 测试接入点能否telnet通(以Linux操作系统为例)。

    1. 登录Linux系统,进入自检工具KafkaChecker.jar所在路径。

      cd /usr/opt/kafka-checker

      请将/usr/opt/kafka-checker替换为本地路径。

    2. 执行以下命令,测试是否可以连接云消息队列 Kafka 版

      java -jar KafkaChecker.jar telnet -s 接入点

      例如:客户端通过专有网络VPC默认接入点接入云消息队列 Kafka 版,则执行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

      说明

      使用专有网络VPC连接点接入时,您的设备需要与实例处于同一VPC下。

      提示如下类似信息,说明网络连接正常。

      telnet xxx 9092  success
      telnet xxx:xxx:xxx 9092  success
      telnet xxx:xxx:xxx 9092  success

      如果提示如下所示信息,说明未配置访问云消息队列 Kafka 版的白名单,具体操作,请参见配置白名单

      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

发送消息测试

说明

发送消息将会产生真实的测试数据,请您创建Topic专门用于自检测试,避免影响正常业务数据。

根据网络接入方式选择对应的命令,发送消息。

  • 通过专有网络VPC默认接入点9092端口接入:

    java -jar KafkaChecker.jar send -s 接入点域名:9092 --topic Topic名称

    示例: java -jar KafkaChecker.jar send -s alikafka-pre-cn-zv**********-1-vpc.alikafka.aliyuncs.com:9092 --topic test

  • 通过公网SSL接入点9093端口接入,SASL支持PLAIN机制或SCRAM-SHA-256机制校验身份,请您根据实际使用的身份校验机制执行对应的发送消息命令:

    说明
    • 公网环境,实例的默认SASL用户使用PLAIN机制进行身份校验。

    • 创建SASL用户可进行更细致的权限控制,您可以配置身份校验机制为PLAINSCRAM-SHA-256。具体操作,请参见SASL用户授权。请您根据实际使用的身份校验机制执行对应的发送消息命令。

    PLAIN机制

    java -jar KafkaChecker.jar send -sm PLAIN -ss true -u username -psw password -s 接入点域名:9093 --topic Topic名称

    示例:java -jar KafkaChecker.jar send -sm PLAIN -ss true -u test -psw test**** -s alikafka-pre-cn-zv**********-1.alikafka.aliyuncs.com:9093 --topic test

    SCRAM-SHA-256机制

    java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -ss true -u username -psw password -s 接入点域名:9093 --topic Topic名称

    示例: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

  • 通过专有网络VPC SASL接入点9094端口接入,SASL支持PLAIN机制或SCRAM-SHA-256机制校验身份,请您根据实际使用的身份校验机制执行对应的发送消息命令:

    PLAIN机制

    java -jar KafkaChecker.jar send -sm PLAIN -sp true -u username -psw password -s 接入点域名:9094 --topic Topic名称

    示例: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 test

    SCRAM-SHA-256机制

    java -jar KafkaChecker.jar send -sm SCRAM-SHA-256 -sp true -u username -psw password -s 接入点域名:9094 --topic Topic名称

    示例: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

提示如下类似信息,说明消息发送成功。

[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

消费消息测试

根据网络接入方式选择对应的命令,消费消息。

  • 通过专有网络VPC默认接入点9092端口接入:

    java -jar KafkaChecker.jar pull -s 接入点域名:9092 --topic Topic名称 --group Group名称 --partition 0 --offset 0 --count 10

    示例: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

  • 通过公网SSL接入点9093端口接入,SASL支持PLAIN机制或SCRAM-SHA-256机制校验身份,请您根据实际使用的身份校验机制执行对应的消费消息命令:

    说明
    • 公网环境,实例的默认SASL用户使用PLAIN机制进行身份校验。

    • 创建SASL用户可进行更细致的权限控制,您可以配置身份校验机制为PLAINSCRAM-SHA-256。具体操作,请参见SASL用户授权。请您根据实际使用的身份校验机制执行对应的消费消息命令。

    PLAIN机制

    java -jar KafkaChecker.jar pull -sm PLAIN -ss true -u username -psw password -s 接入点域名:9093 --topic Topic名称 --group Group名称 --partition 0 --offset 0 --count 10

    示例: 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 10

    SCRAM-SHA-256机制

     java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -ss true -u username -psw password -s 接入点域名:9093 --topic Topic名称 --group Group名称 --partition 0 --offset 0 --count 10

    示例: 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

  • 通过专有网络VPC SASL接入点9094端口接入,SASL支持PLAIN机制或SCRAM-SHA-256机制校验身份,请您根据实际使用的身份校验机制执行对应的消费消息命令:

    PLAIN机制

    java -jar KafkaChecker.jar pull -sm PLAIN -sp true -u username -psw password -s 接入点域名:9094 --topic Topic名称 --group Group名称 --partition 0 --offset 0 --count 10

    示例: 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 10

    SCRAM-SHA-256机制

     java -jar KafkaChecker.jar pull -sm SCRAM-SHA-256 -sp true -u username -psw password -s 接入点域名:9094 --topic Topic名称 --group Group名称 --partition 0 --offset 0 --count 10

    示例: 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

提示如下类似信息,说明消费成功。执行上述消费消息命令后,若连接正常且Topic中存在消息,将输出类似如下拉取成功日志:

[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

相关文档

相关的SDK代码包,请参见SDK概述