温馨提示×

linux kafka怎样升级

小樊
35
2026-10-17 00:16:04
栏目: 智能运维

下面给你一个Linux 下 Kafka 升级的实操指南,涵盖常见版本升级(0.10+ → 新版本)和注意事项。以 Kafka 二进制包(tar.gz) 为例,这是生产环境最常见方式。


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

1. 查看当前版本

kafka-server-start.sh --version
# 或
grep version libs/kafka_*.jar

2. 备份

  • 备份 server.properties
  • 备份 zookeeper.properties(如果用 ZK)
  • 备份数据目录(可选但强烈建议)
cp server.properties server.properties.bak
tar czf kafka-data-backup.tgz /data/kafka

3. 查看兼容性

关键规则:

  • 小版本可滚动升级(如 2.8.1 → 2.8.2)
  • 大版本需谨慎(如 2.x → 3.x)
  • Kafka 3.x 后默认不再需要 ZooKeeper(KRaft 模式)

官方兼容说明: https://kafka.apache.org/documentation/#upgrade


二、Kafka 滚动升级(推荐方式)

适用于 多 Broker 集群

步骤概览

  1. 一台一台升级
  2. 每台上先停旧、再启新
  3. 观察日志无异常再继续

1. 停止 Kafka(逐台)

bin/kafka-server-stop.sh
# 或
kill -TERM $(cat kafka.pid)

确认已停:

jps | grep Kafka

2. 下载新版本 Kafka

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

3. 复制配置文件

cp old-kafka/config/server.properties new-kafka/config/

⚠️ 注意:

  • 不要直接覆盖整个 config 目录
  • 重点检查:
    • broker.id
    • log.dirs
    • zookeeper.connect
    • listeners

4. 启动新 Kafka

cd new-kafka
nohup bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &

5. 观察状态

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

确认:

  • 所有 broker 在线
  • 无 ERROR 日志

6. 重复以上步骤

逐台完成所有 Broker


三、升级后操作(非常关键)

1. 升级消息格式(可选)

bin/kafka-configs.sh --bootstrap-server localhost:9092 \
  --entity-type brokers --entity-defaults \
  --alter --add-config log.message.format.version=3.6

2. 升级 Producer / Consumer

客户端也要逐步升级:

  • Kafka Client ≥ Broker 版本
  • 不要 Client 新于 Broker 太多

四、ZooKeeper 模式 → KRaft(3.x)

⚠️ 不能热升级 步骤:

  1. 建新 KRaft 集群
  2. 用 MirrorMaker 迁移数据
  3. 切流量

五、常见坑

❌ 直接覆盖 config
❌ 所有 broker 同时重启
❌ 忽略 inter.broker.protocol.version
❌ 客户端版本过低


六、示例升级路径

0.10 → 0.11 → 1.0 → 2.0 → 2.8 → 3.x

如果你告诉我:

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

我可以给你精确到命令的升级方案。

0 踩