温馨提示×

kafka在linux咋升级

小樊
45
2026-10-05 06:50:08
栏目: 智能运维

下面给你一套在 Linux 上升级 Kafka 的通用、稳妥做法,适用于大多数生产/测试环境(以 Kafka 2.x / 3.x 为例,包含 ZooKeeper 和 KRaft 模式说明)。


一、升级前准备(非常重要)

1. 查看当前版本

kafka/bin/kafka-topics.sh --version
# 或
cat kafka-release/version.txt

2. 阅读官方升级说明(必看)

不同大版本升级差异很大:

  • Kafka 官方文档:https://kafka.apache.org/documentation/#upgrade
  • 重点看 “Important Notes” 和 “Compatibility”

⚠️ 常见注意点:

  • 0.10 → 2.x
  • 2.7 → 3.x(KRaft 实验)
  • 3.3+ 可使用 KRaft(无需 ZooKeeper)

二、备份(生产必做)

1. 备份配置

cp -r kafka/config kafka_config_backup

2. 备份数据(如可能)

cp -r kafka/logs kafka_logs_backup
# 或挂载卷直接快照

3. 备份 topic / ACL(可选)

kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

三、滚动升级(推荐,不停机)

场景 A:使用 ZooKeeper 的 Kafka

1. 下载新版本

wget https://archive.apache.org/dist/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz

2. 修改新版本配置

cp kafka/config/server.properties kafka_2.13-3.6.1/config/
# 核对 broker.id / listeners / log.dirs

3. 逐台升级 Broker

在每台机器上:

# 停旧 broker
kafka/bin/kafka-server-stop.sh

# 启动新 broker
kafka_2.13-3.6.1/bin/kafka-server-start.sh -daemon kafka_2.13-3.6.1/config/server.properties

✅ 等集群重新平衡后再升下一台


场景 B:KRaft 模式(Kafka 3.x)

kafka_3.x/bin/kafka-storage.sh format \
  --config kafka_3.x/config/kraft/server.properties \
  --cluster-id xxx

kafka_3.x/bin/kafka-server-start.sh -daemon \
  kafka_3.x/config/kraft/server.properties

四、协议版本升级(关键步骤)

升级完成后,不要立刻改 protocol version

1. 先确认稳定

kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092

2. 修改配置并重启

inter.broker.protocol.version=3.6
log.message.format.version=3.6
kafka/bin/kafka-server-stop.sh
kafka/bin/kafka-server-start.sh -daemon config/server.properties

五、客户端升级

  • Producer / Consumer SDK 建议同步升级
  • 保持 broker 版本 ≥ client 版本

六、常见坑

❌ 直接覆盖安装目录
❌ 不备份 config
❌ 大版本跳跃升级(如 0.10 → 3.x)
❌ 没等 partition 平衡就升下一台


七、最简总结版

# 1. 备份
# 2. 下载新版本
# 3. 拷贝配置
# 4. 逐台停止+启动
# 5. 稳定后升级 protocol version

如果你能告诉我:

  • Kafka 当前版本
  • 是否用 ZooKeeper
  • 单节点还是集群
  • Linux 发行版

我可以给你完全定制的一步一步命令。

0 踩