20.4. 升级 Kafka 集群


将基于 KRaft 的 Kafka 集群升级到更新支持的 Kafka 版本和 KRaft 元数据版本。您可以更新安装文件,然后配置并重启所有 Kafka 节点。执行这些步骤后,数据会根据新的元数据版本在 Kafka 代理之间传输。

警告

当将基于 KRaft 的 Strimzi Kafka 集群降级到较低版本时,如从 3.8.0 迁移到 3.7.0,请确保 Kafka 集群使用的元数据版本是由您要降级的 Kafka 版本支持的版本。您从中降级的 Kafka 版本的元数据版本不能高于您要降级的版本。

先决条件

流程

对于 Apache Kafka 集群流中的每个 Kafka 节点,从控制器节点开始,然后是代理,一次一个节点:

  1. 从 Apache Kafka 软件下载页面 的 Streams for Apache Kafka 归档下载

    注意

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

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

    mkdir /tmp/kafka
    unzip amq-streams-<version>-kafka-bin.zip -d /tmp/kafka
  3. 如果运行,请停止主机上运行的 Kafka 代理。

    /opt/kafka/bin/kafka-server-stop.sh
    jcmd | grep kafka

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

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

    rm -rf /opt/kafka/libs /opt/kafka/bin
  5. 从临时目录中复制 libsbin 目录:

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

    rm -r /tmp/kafka
  8. 重启更新的 Kafka 节点:

    使用组合角色重启节点

    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties

    重启控制器节点

    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/controller.properties

    使用代理角色重启节点

    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/kraft/broker.properties

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

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

  9. 检查 Kafka 是否正在运行:

    jcmd | grep kafka
  10. 更新 Kafka 元数据版本:

    ./bin/kafka-features.sh --bootstrap-server <broker_host>:<port> upgrade --metadata 3.8

    为您要升级到的 Kafka 版本使用正确的版本。

注意

使用 kafka-topics.sh 工具验证重启的 Kafka 代理是否有分区副本,以确保代理中包含的所有副本都同步。具体步骤请参阅 列出和描述主题

升级客户端应用程序

确保所有 Kafka 客户端应用程序都更新为在升级过程中使用客户端二进制文件的新版本,并验证其与 Kafka 升级的兼容性。如果需要,与负责管理客户端应用程序的团队协调。

提示

要检查客户端是否使用最新的消息格式,请使用 kafka.server:type=BrokerTopicMetrics,name={Produce|Fetch}MessageConversionsPerSec 指标。如果使用最新的消息格式,指标会显示 0。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部