1

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

各种工作人员和守护进程在两个代理上消费和产生消息。

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

有没有一种简单的方法可以将一个主题从 0.9 复制到 0.10?还是使用 0.10 客户端连接到 0.9?我不想不得不将两个版本都塞进同一个罐子里。仅使用 0.10 客户端使用 0.9 代理似乎不起作用。

4

2 回答 2

3

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

因为 Kafka Streams 库使用0.10.x客户端,所以它只适用于0.10.x代理。

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

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

于 2016-07-14T08:53:14.203 回答
-1

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

于 2016-07-15T19:38:23.407 回答