kafka 0.11/golang sarama版本支持

4bbkushb  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(627)

我花了一些时间发现,连接到kafka 0.11集群的go应用程序使用的是旧的0.8.2版本的库,它在响应中缺少timestamp值。
然后我发现kafka0.11.xapi/version不受支持(但他们正在努力)。
我现在有两个解决方案。
首先是在我的应用程序中显式设置所需的版本。第二个是“调优”sarama代码,使其使用版本0.10.x作为最低版本,使我能够使用所有的0.10.xapi/功能。
我还在想,为什么这个版本不是从Kafka经纪人我连接?
我不明白它应该怎么工作从代码。。。我清楚地看到了sarama.config.version中设置或定义的版本,但是一旦连接到代理,我就找不到任何东西来更新这个值?
我知道python是这样做的:

from kafka import BrokerConnection
broker=BrokerConnection("localhost",9092,0)
broker.connect()
broker.check_version()

(0, 11, 0)
我错过了什么?

mm9b1k5b

mm9b1k5b1#

就我所知,我不确定sarama自己是否能够处理代理版本的搜索。
在我看来,您需要在producer/broker/client的配置参数中定义要使用的api版本,例如:

config := sarama.NewConfig()
config.Version=sarama.V0_10_2_0

此外,sarama还不支持0.11.0(2017年9月),因此请使用0.10.2.0访问最新的api。
最后,要使用第二种解决方案,请编辑文件 Shopify/sarama/utils.go 并在末尾添加您的版本:

V0_11_0_0  = newKafkaVersion(0, 11, 0, 0)
V0_11_0  = newKafkaVersion(0, 11, 0, 0)
minVersion = V0_11_0_0

相关问题