我有两个经纪人。第一个运行0.9,第二个运行0.10各种工作进程和守护进程在两个代理上消费和生成消息。对于一个应用程序,我需要来自正在使用的应用程序的0.9主题的消息 KStreams 并连接到0.10代理。有没有一种简单的方法可以将一个主题从0.9复制到0.10?或者使用0.10客户端连接到0.9?我不想把两个版本都塞进同一个jar里。仅仅使用0.9代理和0.10客户端似乎不起作用。
KStreams
6mzjoqzu1#
一般来说,只有kafka代理是向后兼容的(而不是kafka客户机)。因此,客户机可以连接到较新的代理,但不能连接到较旧的代理。因为Kafka图书馆使用 0.10.x 客户,它只适用于 0.10.x 经纪人。因此,升级您的代理如下所述:https://kafka.apache.org/documentation.html#upgrade 应该是最好的方法(这是安全的,因为代理是向后兼容的,因此不会破坏使用此代理与旧客户端的任何其他应用程序)。另外,您还可以使用mirror maker从中复制主题 0.9.x 群集到 0.10.x 集群。
0.10.x
0.9.x
6jjcrrmo2#
我的解决方案是使用jarjar重写0.9客户机jar,这样类/类型就不会与0.10客户机冲突。这是肮脏的,但它围绕着jvm的观点工作,即拥有同一个库的两个版本。
2条答案
按热度按时间6mzjoqzu1#
一般来说,只有kafka代理是向后兼容的(而不是kafka客户机)。因此,客户机可以连接到较新的代理,但不能连接到较旧的代理。
因为Kafka图书馆使用
0.10.x
客户,它只适用于0.10.x
经纪人。因此,升级您的代理如下所述:https://kafka.apache.org/documentation.html#upgrade 应该是最好的方法(这是安全的,因为代理是向后兼容的,因此不会破坏使用此代理与旧客户端的任何其他应用程序)。
另外,您还可以使用mirror maker从中复制主题
0.9.x
群集到0.10.x
集群。6jjcrrmo2#
我的解决方案是使用jarjar重写0.9客户机jar,这样类/类型就不会与0.10客户机冲突。这是肮脏的,但它围绕着jvm的观点工作,即拥有同一个库的两个版本。