Apache kafka 卡夫卡消费品0.10向后兼容吗?

Apache kafka 卡夫卡消费品0.10向后兼容吗?,apache-kafka,kafka-consumer-api,Apache Kafka,Kafka Consumer Api,卡夫卡消费者0.10是否与0.9代理兼容 如果我没有弄错的话,0.9消费者仍然被认为是beta,而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。您没有说明客户端使用的是什么语言以及使用的客

卡夫卡消费者0.10是否与0.9代理兼容


如果我没有弄错的话,0.9消费者仍然被认为是beta,而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客户端也是如此)是代理的版本号必须等于或高于客户端的版本号。换句话说,卡夫卡是向后兼容的,但它还没有完全向前兼容。

我的答案不仅仅是针对
0.10.0
客户端。我搜索
Kafka客户机和代理版本兼容性
并到达这里,因此我为未来的读者留下了一个更完整的答案

根据:

在KIP-35和KIP-97中完成的“双向”客户端兼容性工作消除了这些限制。新的Java客户机现在可以与旧的代理进行通信

改进的客户端兼容性是Kafka 0.10.2中的一项新功能。它由版本为0.10.0或更高版本的代理支持

例如,如果我们在
2.0.0
中使用客户端,我们可以使用代理
0.10.0
all其他更高版本(当然,新功能将不受支持)。但是如果我们在
0.10.1
中使用客户机,我们只能从
0.10.1
和更高版本与代理进行通信


因此,kafka consumer
0.10
0.9
代理不兼容。

是的,我指的是新的Java consumer API。谢谢你指出。好的,这听起来很合理。是否有任何文件提到这一点?你自己试过吗?这里隐式地记录了ThanksIt。“服务器将拒绝其不支持的版本的请求,并始终根据其请求中包含的版本以其期望的协议格式准确响应客户端。”是的,我已经使用kafka-console-consumer.sh和--new consumer标志测试了这两种情况。如果kafka代理使用的是scala 2.11,而kafka客户机/生产者使用的是scala 2.12,这有关系吗?它似乎可以工作,但只是想检查一下?这不重要,因为这里重要的是客户端使用的wire协议版本和代理支持的协议版本。