下面给你一套在 Linux 上升级 Kafka 的通用、稳妥做法,适用于大多数生产/测试环境(以 Kafka 2.x / 3.x 为例,包含 ZooKeeper 和 KRaft 模式说明)。
kafka/bin/kafka-topics.sh --version
# 或
cat kafka-release/version.txt
不同大版本升级差异很大:
⚠️ 常见注意点:
cp -r kafka/config kafka_config_backup
cp -r kafka/logs kafka_logs_backup
# 或挂载卷直接快照
kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
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
cp kafka/config/server.properties kafka_2.13-3.6.1/config/
# 核对 broker.id / listeners / log.dirs
在每台机器上:
# 停旧 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
✅ 等集群重新平衡后再升下一台
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
kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092
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
❌ 直接覆盖安装目录
❌ 不备份 config
❌ 大版本跳跃升级(如 0.10 → 3.x)
❌ 没等 partition 平衡就升下一台
# 1. 备份
# 2. 下载新版本
# 3. 拷贝配置
# 4. 逐台停止+启动
# 5. 稳定后升级 protocol version
如果你能告诉我:
我可以给你完全定制的一步一步命令。