9.2. 降级 Kafka


Kafka 版本降级由 Cluster Operator 执行。

9.2.1. 降级的 Kafka 版本兼容性

Kafka 降级依赖于兼容的当前和目标 Kafka 版本,以及记录消息的状态。

如果该版本不支持集群中 曾使用的任何 inter.broker.protocol.version 设置,或者已将消息添加到使用 较新的 log.message.format.version 的消息日志中,则无法恢复到以前的 Kafka 版本。

inter.broker.protocol.version 决定代理用于存储持久元数据的模式,例如写入到 __consumer_offsets 的消息的 schema。如果您降级到不理解之前在集群中使用的 inter.broker.protocol.version 的 Kafka 版本,代理会遇到它无法理解的数据。

如果 Kafka 的目标降级版本有:

  • 当前版本相同的 log.message.format.version,通过对代理执行一次滚动重启来降级 Cluster Operator。
  • 只有正在运行的集群 始终将 log.message.format.version 设置为由降级版本使用的版本,才可 使用不同的 log.message.format.version。这通常是在 log.message.format.version 改变前中止升级过程的情况。在这种情况下,降级需要:

    • 如果两个版本的检查程序协议不同,则代理的两个滚动重启
    • 单个滚动重启(如果相同)

如果新版本曾使用过上一版本不支持log.message.format.version,则无法进行降级,包括当使用了 log.message.format.version 的默认值时。例如,这个资源可以降级为 Kafka 版本 2.7.0,因为 log.message.format.version 尚未更改:

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  kafka:
    version: 2.8.0
    config:
      log.message.format.version: "2.7"
      # ...

如果 log.message.format.version 设置为 "2.8" 或没有值(因此该参数使用 2.8.0 代理 2.8 的默认值),则无法进行降级。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部