kafka AdminClient 获取kafka版本
Posted
技术标签:
【中文标题】kafka AdminClient 获取kafka版本【英文标题】:kafka AdminClient get kafka version 【发布时间】:2019-11-21 23:36:47 【问题描述】:有没有办法以编程方式获取 kafka 集群的版本?比如,使用
AdminClient
API。
我想在消费者/生产者应用中识别 kafka 集群的版本。
【问题讨论】:
【参考方案1】:目前无法检索代理正在运行的 Kafka 版本。
正在进行一个 KIP 以将该功能添加到 AdminClient:KIP-483: Add Broker Version API in Admin Client,以便在未来的版本中可用。
与此同时,您可以尝试一些解决方法:
使用describeConfigs()
查找代理的inter.broker.protocol.version
配置。如果返回 2.2-IV1
,则表示代理正在运行至少 2.2。
检查 ApiVersions 响应。在启动客户端时发送一个 ApiVersions 请求,并且响应写入日志(在 INFO 级别)。或者手动发送ApiVersions,制作这样的请求非常容易,因为它是一个空的正文。然后您可以使用https://cwiki.apache.org/confluence/display/KAFKA/Kafka+APIs 识别代理版本
【讨论】:
【参考方案2】:您可以在您的消费者/生产者代码中使用AppInfoParser.getVersion();
。
【讨论】:
这是 kafka 客户端的版本,而不是 kafka 代理的版本以上是关于kafka AdminClient 获取kafka版本的主要内容,如果未能解决你的问题,请参考以下文章
Kafka 0.11客户端集群管理工具AdminClient