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"
      # ...
Copy to Clipboard Toggle word wrap

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat