我有两个经纪人。第一次运行 0.9,第二次运行 0.10
各种工作人员和守护进程在两个代理上消费和产生消息。
对于一个应用程序,我需要来自正在使用KStreams
并连接到 0.10 代理的应用程序的 0.9 主题消耗品的消息。
有没有一种简单的方法可以将一个主题从 0.9 复制到 0.10?还是使用 0.10 客户端连接到 0.9?我不想不得不将两个版本都塞进同一个罐子里。仅使用 0.10 客户端使用 0.9 代理似乎不起作用。
我有两个经纪人。第一次运行 0.9,第二次运行 0.10
各种工作人员和守护进程在两个代理上消费和产生消息。
对于一个应用程序,我需要来自正在使用KStreams
并连接到 0.10 代理的应用程序的 0.9 主题消耗品的消息。
有没有一种简单的方法可以将一个主题从 0.9 复制到 0.10?还是使用 0.10 客户端连接到 0.9?我不想不得不将两个版本都塞进同一个罐子里。仅使用 0.10 客户端使用 0.9 代理似乎不起作用。
一般来说,只有 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
集群。
我的解决方案是使用 jarjar 重写 0.9 客户端 jar,以便类/类型不会与 0.10 客户端冲突。它很脏,但它围绕jvm关于拥有同一个库的两个版本的观点起作用。