Kafka 0.11 / Golang Sarama版本支持

时间:2017-09-25 15:57:27

标签: go apache-kafka sarama

我花了一些时间发现连接到Kafka 0.11集群的Go应用程序使用的是旧的0.8.2版本的库,它缺少响应中的Timestamp值。

然后我发现Kafka 0.11.x API /版本不受支持(但他们正在努力)。

我现在有两种解决方案。

首先在我的应用中明确设置所需的版本。 其次是"调和" Sarama代码使用0.10.x版本作为最低版本,使我能够使用所有0.10.x API /功能。

我仍然想知道为什么这个版本不是来自我连接的Kafka经纪人?

我无法理解它应该如何使用代码...我清楚地看到sarama.Config.Version中设置或定义的版本,但我无法理解一旦连接到经纪人,找到任何更新此值的内容?

我知道Python正是这样做的:

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

(0,11,0)

我错过了什么?

1 个答案:

答案 0 :(得分:1)

据我所知,我不确定Sarama是否自行处理经纪人版本的搜索。

从我的角度来看,需要在Producer / Broker / Client的config参数中定义要使用的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