17.3. 升级 Kafka 代理和 ZooKeeper


在主机机器上升级 Kafka 代理和 ZooKeeper,以使用最新版本的 AMQ Streams。您可以更新安装文件,然后配置并重启所有 Kafka 代理以使用新的 inter-broker 协议版本。执行这些步骤后,会使用新的 Inter-broker 协议版本在 Kafka 代理(broker)协议版本间传输数据。

注意

从 Kafka 3.0.0 开始,消息格式版本值被假定为与 inter.broker.protocol.version 匹配,不需要设置。值反映了使用的 Kafka 版本。

先决条件

流程

对于 AMQ Streams 集群中的每个 Kafka 代理,一次:

  1. 从 AMQ Streams 软件下载页面,下载 AMQ Streams 归档。

    注意

    如有提示,登录到您的红帽帐户。

  2. 在命令行中,创建一个临时目录并提取 amq-streams-<version>-bin.zip 文件的内容。

    mkdir /tmp/kafka
    unzip amq-streams-<version>-bin.zip -d /tmp/kafka
    Copy to Clipboard Toggle word wrap
  3. 如果正在运行,则停止 ZooKeeper 和在主机上运行的 Kafka 代理。

    /opt/kafka/bin/zookeeper-server-stop.sh
    /opt/kafka/bin/kafka-server-stop.sh
    jcmd | grep zookeeper
    jcmd | grep kafka
    Copy to Clipboard Toggle word wrap

    如果您在多节点集群中运行 Kafka,请参阅 第 3.3 节 “执行安全滚动重启 Kafka 代理”

  4. 从现有安装中删除 libsbin 目录:

    rm -rf /opt/kafka/libs /opt/kafka/bin
    Copy to Clipboard Toggle word wrap
  5. 从临时目录复制 libsbin 目录:

    cp -r /tmp/kafka/kafka_<version>/libs /opt/kafka/
    cp -r /tmp/kafka/kafka_<version>/bin /opt/kafka/
    Copy to Clipboard Toggle word wrap
  6. 如果需要,更新 config 目录中的配置文件,以反映新版本的任何更改。
  7. 删除临时目录。

    rm -r /tmp/kafka
    Copy to Clipboard Toggle word wrap
  8. 编辑 /opt/kafka/config/server.properties 属性文件。

    inter.broker.protocol.versionlog.message.format.version 属性设置为当前版本

    例如,如果从 Kafka 版本 3.2.3 升级到 3.3.1,则当前版本为 3.2:

    inter.broker.protocol.version=3.2
    log.message.format.version=3.2
    Copy to Clipboard Toggle word wrap

    使用您要从其升级的 Kafka 版本的正确版本(3.13.2 等等)。在当前设置中,使 inter.broker.protocol.version 保持不变,可确保代理可以在整个升级过程中继续相互通信。

    如果没有配置属性,请使用当前版本添加它们。

    如果您要从 Kafka 3.0.0 或更高版本升级,则只需要设置 inter.broker.protocol.version

  9. 重启更新的 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
    Copy to Clipboard Toggle word wrap

    Kafka 代理和 ZooKeeper 开始使用最新 Kafka 版本的二进制文件。

    有关在多节点集群中重启代理的详情,请参考 第 3.3 节 “执行安全滚动重启 Kafka 代理”

  10. 验证重启的 Kafka 代理已使用分区的副本发现。

    使用 kafka-topics.sh 工具来确保代理中包含的所有副本都恢复同步。具体步骤请查看 列出和描述主题

    在以下步骤中,更新您的 Kafka 代理以使用新的内代理协议版本。

    每次更新每个代理。

    警告

    在完成以下步骤后,无法降级 AMQ Streams。

  11. 升级所有使用,然后生成应用程序以使用最新的 Kafka 客户端依赖项

    这可避免需要使用旧的消息格式的代理。

  12. /opt/kafka/config/server.properties 文件中将 inter.broker.protocol.version 属性设置为 3.3

    inter.broker.protocol.version=3.3
    Copy to Clipboard Toggle word wrap
  13. 在命令行中停止您修改的 Kafka 代理:

    /opt/kafka/bin/kafka-server-stop.sh
    Copy to Clipboard Toggle word wrap
  14. 检查 Kafka 是否在运行:

    jcmd | grep kafka
    Copy to Clipboard Toggle word wrap
  15. 重启您修改的 Kafka 代理:

    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
    Copy to Clipboard Toggle word wrap
  16. 检查 Kafka 是否正在运行:

    jcmd | grep kafka
    Copy to Clipboard Toggle word wrap
  17. 如果您要从 Kafka 3.0.0 之前的版本升级,请在 /opt/kafka/config/server.properties 文件中将 log.message.format.version 属性设置为 3.3

    log.message.format.version=3.3
    Copy to Clipboard Toggle word wrap
  18. 在命令行中停止您修改的 Kafka 代理:

    /opt/kafka/bin/kafka-server-stop.sh
    Copy to Clipboard Toggle word wrap
  19. 检查 Kafka 是否在运行:

    jcmd | grep kafka
    Copy to Clipboard Toggle word wrap
  20. 重启您修改的 Kafka 代理:

    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
    Copy to Clipboard Toggle word wrap
  21. 检查 Kafka 是否正在运行:

    jcmd | grep kafka
    Copy to Clipboard Toggle word wrap
  22. 验证重启的 Kafka 代理已使用分区的副本发现。

    使用 kafka-topics.sh 工具来确保代理中包含的所有副本都恢复同步。具体步骤请查看 列出和描述主题

  23. 如果在升级前使用了它,请从 server.properties 文件中删除传统的 log.message.format.version 配置。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat