kafka consumer 0.10 向后兼容吗?

Is kafka consumer 0.10 backwards compatible?

kafka consumer 0.10 是否与 0.9 broker 兼容?

如果我没记错的话,0.9 消费者仍然被认为是测试版,而 0.10 是稳定的,对吧?这就是为什么我对使用 0.10 版本感兴趣,但我的代理版本是 0.9,我还不想升级它。

如果您想使用 0.10 客户端,您需要将集群升级到 0.10。

Kafka 向后兼容客户端,但不向前兼容。即0.9客户端可以使用0.10集群,0.10客户端不能使用0.9集群。

我们的想法是先将您的集群升级到 0.10,然后逐渐将客户端从 0.9 迁移到 0.10。

您没有说您的客户端是用什么语言编写的以及您使用的是哪些客户端库。一些客户端(如基于 librdkafka 的客户端)可以处理与旧代理的连接,但一般规则(对于默认的 Apache kafka java 客户端也是如此)是代理的版本号必须等于或高于客户。也就是说,Kafka是向后兼容的,但还不能完全向前兼容。

我的回答不仅仅针对0.10.0个客户。我搜索 Kafka client & broker version compatibility 并到达这里,所以我为将来 reader.

留下更完整的答案

根据this official post

The “bidirectional” client compatibility work done in KIP-35 and KIP-97 removed these limitations. New Java clients can now communicate with old brokers.

Improved client compatibility is a new feature in Kafka 0.10.2. It is supported by brokers that are at version 0.10.0 or later.

比如我们在2.0.0中使用client,我们可以使用broker 0.10.0all其他更高版本(当然还有新特性将不支持)。但是如果我们在 0.10.1 中使用客户端,我们只能与 0.10.1 及更高版本的 broker 通信。

因此,kafka 消费者 0.10 0.9 代理兼容。