17.5. 升级 Kafka
升级二进制文件以使用最新版本的 AMQ Streams 后,您可以升级代理以使用较高支持的 Kafka 版本。
在 Kafka 升级后,您可以升级 Kafka 用户以使用增量重新平衡协议。
17.5.1. 将 Kafka 代理升级到使用新的 inter-broker 协议版本 复制链接链接已复制到粘贴板!
手动配置并重启所有 Kafka 代理以使用新的 inter-broker 协议版本。执行这些步骤后,数据会使用新的 inter-broker 协议版本在 Kafka 代理之间传输。
从 Kafka 3.0.0 开始,消息格式版本值被假定为与 inter.broker.protocol.version
匹配,不需要设置。该值反映了使用的 Kafka 版本。
收到的消息仍然以较早的消息格式版本附加到消息日志中。
完成此步骤后,无法降级 AMQ Streams。
先决条件
- 您已更新了 ZooKeeper 二进制文件,并将所有 Kafka 代理升级到 AMQ Streams 2.0
-
以
kafka
用户身份登录 Red Hat Enterprise Linux。
流程
对于 AMQ Streams 集群中的每个 Kafka 代理,一次一个:
-
在文本编辑器中,打开您要更新的 Kafka 代理的代理属性文件。代理属性文件通常存储在
/opt/kafka/config/
目录中。 将
inter.broker.protocol.version
设置为3.0
。inter.broker.protocol.version=3.0
inter.broker.protocol.version=3.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在命令行中停止您修改的 Kafka 代理:
/opt/kafka/bin/kafka-server-stop.sh jcmd | grep kafka
/opt/kafka/bin/kafka-server-stop.sh jcmd | grep kafka
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启您修改的 Kafka 代理:
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
验证重启的 Kafka 代理是否有分区副本。使用
kafka-topics.sh
工具来确保代理中包含的所有副本都重新同步。具体步骤请参阅 列出和描述主题。
17.5.2. 将消费者和 Kafka Streams 应用程序升级到合作重新平衡 复制链接链接已复制到粘贴板!
您可以升级 Kafka 用户和 Kafka Streams 应用程序,为分区 重新平衡使用增量协作 重新平衡协议,而不是默认的 eager 重新平衡 协议。在 Kafka 2.4.0 中添加新协议。
消费者将分区分配保持在协作重新平衡中,并仅在需要实现均衡的集群时在进程结束时撤销它们。这可减少消费者组或 Kafka Streams 应用程序的不可用。
升级到增量协作重新平衡协议是可选的。eager 重新平衡协议仍被支持。
流程
要升级 Kafka 使用者以使用增量协作重新平衡协议:
-
将 Kafka 客户端
.jar
文件替换为新版本。 -
在消费者配置中,将
cooperative-sticky
附加到partition.assignment.strategy
。例如,如果设置了范围
策略,请将配置更改为range, cooperative-sticky
。 - 依次重启组中的每个消费者,等待用户在每次重启后重新加入组。
-
通过从消费者配置中删除之前的
partition.assignment.strategy
来重新配置组中的每个消费者,仅保留cooperative-sticky
策略。 - 依次重启组中的每个消费者,等待用户在每次重启后重新加入组。
要升级 Kafka Streams 应用程序以使用增量协作重新平衡协议:
-
将 Kafka Streams
.jar
文件替换为新版本。 -
在 Kafka Streams 配置中,将
upgrade.from
配置参数设置为您要从升级的 Kafka 版本(如 2.3)。 - 依次重启每个流处理器(节点)。
-
从 Kafka Streams 配置中删除
upgrade.from
配置参数。 - 依次重启组中的每个消费者。