我按照以下步骤将我的Kafka集群从1.1.0
升级到2.3.0
:
https://kafka.apache.org/documentation/#upgrade_2_3_0
一切都很好(而且我不必更改消息格式的版本)。
我完全理解为什么在第一次滚动重新启动时我们应该将inter.broker.protocol.version
设置为1.1
,但是我不明白为什么以后要再次将其设置为2.3
值。
我的意思是我们可以从inter.broker.protocol.version
中删除server.properties
参数,应该没问题。为什么2.3
经纪人应该知道他们应该使用2.3
协议版本,这不是默认协议吗?
答案 0 :(得分:1)
我第一次升级我的kafka集群时也遇到了同样的问题。但是,下次我升级时,我不必在安装新二进制文件之前设置inter.broker.protocol.version,因为它已经存在。我的想法是,它不会造成任何伤害,并且消除了有关我登录到的任何代理上正在使用哪个inter.broker.protocol.version的任何疑问。
答案 1 :(得分:0)
第一步,您必须设置inter.broker.protocol.version=CURRENT_KAFKA_VERSION
。在您的情况下,这是inter.broker.protocol.version=1.1
。升级成功后,您需要将inter.broker.protocol.version
更新到最新版本(即2.3
),并最终重新启动所有代理以应用此配置,并使所有代理意识到最新的协议版本应与集群中的其他代理通信时使用。
将inter.broker.protocol.version
更改为2.3
并重新启动所有Kafka Brokers之后,就不再需要此参数。