概述
在使用消息队列Kafka版时,客户端可能报错,您可以根据报错消息匹配对应的解决方案。
详细信息
报错信息对应的详细信息如下。
报错信息 |
客户端语言类型 |
报错原因 |
解决方案 |
TimeoutException |
Java |
- 网络问题
- 客户端鉴权(sasl.mechanisms)失败
说明:该报错仅出现在消息队列Kafka版的公网实例中。
|
- 确保servers配置正确。
- 通过
telnet 命令排除网络问题。
- 如果网络正常,请参考如下内容,确认鉴权正常。
|
run out of brokers |
Go |
Authentication failed for user |
Python |
Leader is not available |
所有 |
Topic初始化时会短暂报该错误。如果持续报错,可能是因为没有创建Topic。 |
- 登录消息队列Kafka版控制台。
- 检查Topic是否已经创建。
- 如果未创建,请先创建Topic。具体信息,请参见创建Topic。
|
leader is in election |
array index out of bound exception
|
Java |
Spring Cloud会按自己的格式解析消息内容。 |
参考如下两种解决方法:
- 推荐同时使用Spring Cloud发送和消费。
- 如果您使用其他方式发送,例如,调用原生Java客户端发送,通过Spring Cloud消费时,需要设置
headerMode 为“raw”,即禁用解析消息内容。 具体信息,请参见Spring Cloud 官网。
|
No such configuration property: "sasl.mechanisms"
|
- C++
- 包装C++的客户端,例如,PHP、Node.js等。
|
SASL和SSL模块未安装或安装异常。 |
参考如下命令安装SASL和SSL模块:
说明:此处以CentOS系统为例,其他系统请查阅相关官网或者第三方搜索引擎。
- 安装SSL:
sudo yum install openssl openssl-devel
- 安装SASL:
sudo yum install cyrus-sasl{,-plain}
|
No worthy mechs found
|
No KafkaClient Entry
|
Java
|
未找到kafka_client_jaas.conf 配置文件。 |
准备好
kafka_client_jaas.conf 文件,放在任意目录下,这里假设为/home/admin 。Java的安全登录设置是系统性的,有如下两种设置方法:
-
设置系统变量
- 配置系统文件:在
${JAVA_HOME}/jre/lib/java.security 中增加内容:login.config.url.1=file:/home/admin/kafka_client_jaas.conf 。
更多信息,请参见Oracle JAAS Login Configuration File。
|
Error sending fetch request |
Java |
Consumer拉取消息失败报错,可能的原因如下:
|
- 确保servers配置正确。
- 通过
telnet 命令排除网络问题。
- 如果网络正常,可能是拉取消息超时引起。可以尝试调整下列两个参数,限制单次拉取的消息量。
- fetch.max.bytes:单次拉取操作,服务端返回的最大Bytes。
- max.partition.fetch.bytes:单次拉取操作,服务端单个Partition返回的最大Bytes。
- 服务端流量限制,可以在消息队列Kafka版控制台的实例详情页面查看相应内容:
- VPC访问时查看峰值流量。
- 公网访问时查看公网流量。
|
DisconnectException |
CORRUPT_MESSAGE |
所有 |
- 如果是云存储引擎:客户端版本大于等于3.0时,自动开启幂等功能, 但云存储不支持幂等功能。
- 如果是Local存储引擎:发送compact消息, 但未传递key值。
|
- 如果是云储存引擎:设置
enable.idempotence=false 。
- 如果是Local存储引擎:消息添加key值。
|
适用于
如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。