Kafka管理客户端获取Kafka版本。

4
有没有一种方法可以通过编程的方式获取kafka集群的版本?例如,使用AdminClient API。我想在消费者/生产者应用程序中识别kafka集群的版本。
2个回答

5

目前还没有办法检索正在运行的Kafka版本经纪人。

正在进行一个 KIP 来将该功能添加到 AdminClient 中: KIP-483:在 Admin Client中添加 Broker 版本 API,因此可能在未来的版本中可用。

同时,您可以尝试以下几个解决方法:

  • 使用 describeConfigs() 找到代理的 inter.broker.protocol.version 配置。如果返回 2.2-IV1,这意味着经纪人至少运行 2.2 版本。

  • 检查 ApiVersions 响应。当客户端开始发送 ApiVersions 请求时,响应会在日志中写入(INFO级别)。或手动发送一个 ApiVersions,它很容易构建,因为它是一个空请求体。然后,您可以使用https://cwiki.apache.org/confluence/display/KAFKA/Kafka+APIs来确定经纪人版本。


1
你可以在你的消费者/生产者代码中使用 AppInfoParser.getVersion();

这是Kafka客户端的版本,而不是Kafka代理的版本。 - zageyiff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接