更新时间:2023-05-06 GMT+08:00

Kafka连接问题排查和解决

概述

本章节主要描述Kafka连接问题的排查和解决。

问题分类

当您发现与Kafka实例连接出现异常时,可以根据本文的内容,从以下几个方面进行排查。

检查网络

在连接Kafka实例前,需要确保客户端与Kafka实例之间可以相互连接,如果无法连接,建议先检查网络连接是否正常。

已开启sasl_ssl访问的Kafka实例为例,执行如下命令:

curl -kv {ip}:{port}

  • 网络正常,如下:

  • 网络异常/不通,如下:

解决方案:
  1. 检查是否同一个VPC。如果不是,请参考跨VPC访问
  2. 检查安全组规则是否配置正确。请参考如何选择和配置安全组

检查Consumer和Producer的配置

查看日志,检查Consumer和Producer初始化时打印的参数是否符合预期,是否和自己在配置文件中设置的一致。

如果不一致,请检查配置文件的写法。

Java客户端常见报错

  • 未关闭域名校验

    出现下图的错误信息:

    解决方案:检查consumer.properties和producer.properties文件,ssl.endpoint.identification.algorithm参数必须设置为空,关闭域名校验开关。

    ssl.endpoint.identification.algorithm=
  • 加载SSL证书文件失败

    出现下图的错误信息:

    解决方案:

    1. 请检查对应地址的client.truststore.jks文件是否存在。
    2. 检查进程和文件所属权限。
    3. 检查consumer.properties和producer.properties文件中的ssl.truststore.password参数是否配置正确。
      ssl.truststore.password为服务器证书密码,不可更改,需要保持为dms@kafka
      ssl.truststore.password=dms@kafka 
  • Topic名称错误

    出现下图的错误信息:

    解决方案:用户重新创建Topic或者打开自动创建Topic开关。

Go客户端常见报错

使用GO客户端无法连接Kafka SSL,报“first record does not look like a TLS handshake”错误。

解决方案:go默认是关闭的,需要打开TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256加密套件。