kafka AdminClient 获取kafka版本

Posted

技术标签:

【中文标题】kafka AdminClient 获取kafka版本【英文标题】:kafka AdminClient get kafka version 【发布时间】:2019-11-21 23:36:47 【问题描述】:

有没有办法以编程方式获取 kafka 集群的版本?比如,使用 AdminClientAPI。

我想在消费者/生产者应用中识别 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核心API——AdminClient API

Kafka核心API——AdminClient API

kafka AdminClient无法在已部署的环境中工作

Kafka 0.11客户端集群管理工具AdminClient

kafka AdminClient API 等待节点分配超时

Kafka 0.11客户端集群管理工具AdminClient