有没有一种方法可以通过编程的方式获取kafka集群的版本?例如,使用
AdminClient
API。我想在消费者/生产者应用程序中识别kafka集群的版本。AdminClient
API。我想在消费者/生产者应用程序中识别kafka集群的版本。目前还没有办法检索正在运行的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来确定经纪人版本。
AppInfoParser.getVersion();
。