温馨提示×

kafka ubuntu更新升级流程

小樊
36
2026-01-01 22:33:19
栏目: 智能运维

Kafka 在 Ubuntu 的升级流程

一 升级前准备

  • 备份与检查
    • 备份所有节点的配置与数据目录(如 server.properties、zookeeper.properties、log.dirs),以及 ZooKeeper 元数据(如使用外部 ZK,建议导出关键 znode 内容)。
    • 检查 JDK 版本要求(Kafka 3.x 通常需要 JDK 11+),并确认新版本对 Scala 版本 的对应关系。
    • 阅读目标版本的 Release Notes,识别不兼容变更、废弃参数与升级路径限制。
  • 环境与工具
    • 建议在 测试环境 完整演练升级与回滚;准备 滚动升级 与必要的监控/告警(如 UnderReplicatedPartitions=0ISR 健康)。
    • 规划版本跨度,避免跨多个小版本直接升级,按官方推荐路径逐步执行。
  • 集群现状梳理
    • 明确当前是 ZooKeeper 模式 还是 KRaft 模式,记录关键配置:broker.id、listeners/advertised.listeners、log.dirs、zookeeper.connect(ZK 模式)或 process.roles、controller.quorum.voters(KRaft 模式)。

二 标准升级流程(ZooKeeper 模式)

  • 逐节点滚动升级(一次一台)
    1. 检查集群健康:
      • 列出 Topic:kafka-topics.sh --bootstrap-server <任一Broker:9092> --list
      • 检查版本兼容:kafka-broker-api-versions.sh --bootstrap-server <任一Broker:9092>
      • 观察分区健康:kafka-topics.sh --bootstrap-server <任一Broker:9092> --describe 确认 UnderReplicatedPartitions=0
    2. 停止待升级 Broker:
      • 如使用 systemd:systemctl stop kafka
      • 或脚本:bin/kafka-server-stop.sh config/server.properties
    3. 部署新版本(保持目录结构一致,便于回滚):
      • 下载并解压:tar xzf kafka_2.13-<new_version>.tgz -C /opt/kafka-new --strip-components=1
      • 同步配置:cp -r /opt/kafka/current/config /opt/kafka-new/config(按需合并新旧配置)。
    4. 启动新版本 Broker:
      • systemd:systemctl start kafka
      • 或脚本:bin/kafka-server-start.sh -daemon config/server.properties
    5. 验证节点加入与健康:
      • 再次检查 kafka-broker-api-versions.sh 与分区健康,确认 UnderReplicatedPartitions=0 后再升级下一台。
  • 升级后统一调整协议版本(所有 Broker 升级完成后)
    • server.properties 中将 inter.broker.protocol.version 提升到新版本(例如从 3.7 提升到 3.8),并滚动重启以生效。
  • 可选 升级 ZooKeeper(如使用内置或外部 ZK)
    • 逐节点停止 ZK → 替换安装目录 → 启动 → 验证 1 Leader + N Follower 状态,再继续下一节点。

三 KRaft 模式与跨版本注意事项

  • KRaft 模式升级要点
    • 先升级 Controller 节点,再升级 Broker 节点;升级前确认 process.roles、controller.quorum.voters 配置正确。
    • 如从 ZooKeeper 模式迁移到 KRaft,需提前规划并初始化元数据(执行 kafka-storage.sh format 会清空数据,务必在迁移场景使用且做好备份)。
    • 升级完成后使用 kafka-metadata-quorum.sh 检查 Controller 状态与健康。
  • 版本跨度与兼容性
    • 避免跨多个小版本直接升级,遵循官方支持的升级路径;升级后逐步更新 客户端依赖(kafka-clients) 并回归测试。
  • 配置与命令行差异
    • Kafka 3.x 在配置参数与工具链上有较多变化(如命令行工具与参数命名调整),务必对照新版本文档逐项核对。

四 升级后验证与回滚

  • 功能与性能验证
    • 基础连通与健康:kafka-topics.sh --listkafka-consumer-groups.sh --listkafka-broker-api-versions.sh
    • 端到端生产消费:使用 kafka-console-producer.sh / kafka-console-consumer.sh 验证消息收发。
    • 性能回归:kafka-producer-perf-test.shkafka-consumer-perf-test.sh 做吞吐与延迟压测。
  • 监控与观测
    • 关键指标:UnderReplicatedPartitions=0ISR 与副本同步延迟、控制器与 Broker 日志无异常选举/错误。
  • 回滚策略
    • 保留旧版本安装包与配置,出现严重问题时可快速回退到上一版本并恢复配置与数据目录;回滚后按需降级 inter.broker.protocol.version 并重启。

0