Kafka2.6使用--bootstrap-server查询所有Topic配置报错问题咨询
报错原因及问题解答
1. 命令报错的核心原因
你遇到的The broker does not support DESCRIBE_CONFIGS报错,本质是Kafka服务端的inter.broker.protocol.version(简称IBP版本)配置低于DESCRIBE_CONFIGS API的最低支持版本,并非Kafka 2.6本身不支持该功能。
Kafka的IBP版本用来控制broker之间的通信协议能力,也决定了broker对外暴露的API支持范围,哪怕你部署的是2.6版本的安装包,如果手动把IBP版本设为0.10.x甚至更低的老版本,broker就会自动禁用后续版本新增的API,包括查询配置用的DESCRIBE_CONFIGS API,就会抛出该错误。
另外如果本地执行命令用的Kafka客户端工具包版本,远高于服务端实际支持的API版本,也会触发该报错。
2. 为什么--list正常--describe报错
两个命令调用的Kafka API不同:
kafka-topics.sh --list调用的是最基础的METADATAAPI,这个API从Kafka最早版本就存在,不受IBP版本限制,所以可以正常返回Topic列表。kafka-topics.sh --describe、kafka-configs.sh --describe除了拉取基础的分区、副本信息外,还需要拉取Topic的动态配置参数,这一步必须调用DESCRIBE_CONFIGSAPI,这个API只有IBP版本≥0.11.0.0时才会被broker启用,因此会触发不支持的报错。
3. Kafka 2.6版本是否支持通过--bootstrap-server查询Topic详细配置
完全支持。Kafka从0.11.0.0版本开始就已经支持通过--bootstrap-server调用API查询Topic配置,2.6版本原生支持该能力,不需要依赖ZooKeeper参数查询。
解决方案
- 登录Kafka broker节点,查看
server.properties配置文件中的inter.broker.protocol.version和log.message.format.version两个参数,将其修改为和安装版本一致的2.6,滚动重启所有broker节点即可生效。 - 确认本地执行命令用的Kafka工具包版本和服务端版本一致,避免客户端版本过高请求服务端不支持的API版本。
内容的提问来源于stack exchange,提问作者jessica
相关产品推荐
相关产品推荐

