Kafka:在不同版本之间复制主题?

时间:2016-07-13 22:54:56

标签: apache-kafka kafka-consumer-api apache-kafka-streams

我有两个经纪人。第一次运行0.9,第二次运行0.10

各种工作人员和守护进程都会消费并向两个经纪人发送消息。

对于一个应用程序,我需要来自使用KStreams并连接到0.10代理的应用程序的0.9主题消耗品的消息。

是否有一种简单的方法可以将一个主题从0.9复制到0.10?或者使用0.10客户端连接到0.9?我不想在同一个罐子里把两个版本塞满。只使用0.10客户端消费0.9经纪人似乎无法工作。

2 个答案:

答案 0 :(得分:3)

通常,只有Kafka代理向后兼容(不是Kafka客户端)。因此,客户端可以连接到较新的代理,但不能连接到较旧的代理。

由于Kafka Streams库使用0.10.x客户端,因此它仅适用于0.10.x代理。

因此,按照此处所述升级您的代理:https://kafka.apache.org/documentation.html#upgrade应该是最好的方法(这是安全的,因为代理向后兼容,因此不会破坏使用此代理与旧客户端的任何其他应用程序)。 / p>

作为替代方案,您还可以使用Mirror Maker将主题从0.9.x群集复制到0.10.x群集。

答案 1 :(得分:-1)

我的解决方案是使用jarjar重写0.9客户端jar,以便类/类型不与0.10客户端冲突。它很脏,但它适用于jvm关于拥有同一个库的两个版本的意见。