15.3. 升级 Kafka 代理和 ZooKeeper
此流程描述了如何在主机中升级 Kafka 代理和 ZooKeeper 以使用 AMQ Streams 的最新版本。
您可以更新您的文件,然后配置并重启所有 Kafka 代理以使用新的 inter-broker 协议版本。执行这些步骤后,数据会使用新的 inter-broker 协议版本在 Kafka 代理之间传输。
从 Kafka 3.0.0 开始,消息格式版本值被假定为与 inter.broker.protocol.version 匹配,不需要设置。该值反映了使用的 Kafka 版本。
收到的消息仍然以较早的消息格式版本附加到消息日志中。
先决条件
-
以
kafka用户身份登录 Red Hat Enterprise Linux。
流程
对于 AMQ Streams 集群中的每个 Kafka 代理,一次一个:
从 AMQ Streams 软件下载页面 下载 AMQ Streams 存档。
注意如有提示,登录到您的红帽帐户。
在命令行中,创建一个临时目录并提取
amq-streams-x.y.z-bin.zip文件的内容。mkdir /tmp/kafka unzip amq-streams-x.y.z-bin.zip -d /tmp/kafka
mkdir /tmp/kafka unzip amq-streams-x.y.z-bin.zip -d /tmp/kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果运行,停止 ZooKeeper 和主机上运行的 Kafka 代理。
/opt/kafka/bin/zookeeper-server-stop.sh /opt/kafka/bin/kafka-server-stop.sh jcmd | grep zookeeper jcmd | grep kafka
/opt/kafka/bin/zookeeper-server-stop.sh /opt/kafka/bin/kafka-server-stop.sh jcmd | grep zookeeper jcmd | grep kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从现有安装中删除
libs和bin目录:rm -rf /opt/kafka/libs /opt/kafka/bin
rm -rf /opt/kafka/libs /opt/kafka/binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从临时目录中复制
libs和bin目录:cp -r /tmp/kafka/kafka_y.y-x.x.x/libs /opt/kafka/ cp -r /tmp/kafka/kafka_y.y-x.x.x/bin /opt/kafka/ cp -r /tmp/kafka/kafka_y.y-x.x.x/docs /opt/kafka/
cp -r /tmp/kafka/kafka_y.y-x.x.x/libs /opt/kafka/ cp -r /tmp/kafka/kafka_y.y-x.x.x/bin /opt/kafka/ cp -r /tmp/kafka/kafka_y.y-x.x.x/docs /opt/kafka/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除临时目录。
rm -r /tmp/kafka
rm -r /tmp/kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
在文本编辑器中,打开代理属性文件,通常存储在
/opt/kafka/config/目录中。 检查
inter.broker.protocol.version和log.message.format.version属性是否已设置为当前版本:inter.broker.protocol.version=3.0 log.message.format.version=3.0
inter.broker.protocol.version=3.0 log.message.format.version=3.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
inter.broker.protocol.version保持不变,可确保代理可以在升级过程中继续相互通信。如果没有配置属性,请使用当前版本添加它们。
重启更新的 ZooKeeper 和 Kafka 代理:
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka 代理和 Zookeeper 将开始使用最新 Kafka 版本的二进制文件。
验证重启的 Kafka 代理是否有分区副本。
使用
kafka-topics.sh工具来确保代理中包含的所有副本都重新同步。具体步骤请参阅 列出和描述主题。在后续步骤中,更新您的 Kafka 代理以使用新的 inter-broker 协议版本。
一次更新每个代理。
警告完成以下步骤后,无法降级 AMQ Streams。
-
在文本编辑器中,打开您要更新的 Kafka 代理的代理属性文件。代理属性文件通常存储在
/opt/kafka/config/目录中。 将
inter.broker.protocol.version设置为3.1。inter.broker.protocol.version=3.1
inter.broker.protocol.version=3.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在命令行中停止您修改的 Kafka 代理:
/opt/kafka/bin/kafka-server-stop.sh jcmd | grep kafka
/opt/kafka/bin/kafka-server-stop.sh jcmd | grep kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启您修改的 Kafka 代理:
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.propertiesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证重启的 Kafka 代理是否有分区副本。
使用
kafka-topics.sh工具来确保代理中包含的所有副本都重新同步。具体步骤请参阅 列出和描述主题。