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 尚未更改:
如果 log.message.format.version 设置为 "2.8" 或没有值(因此该参数使用 2.8.0 代理 2.8 的默认值),则无法进行降级。