在 Ubuntu 上升级 Kafka,取决于你当前安装方式(包管理器 / 手动解压 / Docker)。下面是最常见的 手动安装方式(推荐) 的升级步骤,也包含快速对比和注意事项。
kafka-topics.sh --version
# 或
ls /opt/kafka # 看你安装目录
记录:
/opt/kafka)server.properties)cp -r /opt/kafka/config ~/kafka_config_backup
cp -r /opt/kafka/logs ~/kafka_logs_backup
cp -r /var/lib/kafka ~/kafka_data_backup # 如果有数据目录
Kafka 下载名类似:
kafka_2.13-3.6.1.tgz
2.13 → Scala 版本3.6.1 → Kafka 版本建议 Kafka 小版本升级,不要跨多个大版本
cd /opt
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -zxvf kafka_2.13-3.6.1.tgz
目录结构示例:
/opt/kafka_2.13-3.6.1
cp ~/kafka_config_backup/server.properties /opt/kafka_2.13-3.6.1/config/
cp ~/kafka_config_backup/producer.properties /opt/kafka_2.13-3.6.1/config/
cp ~/kafka_config_backup/consumer.properties /opt/kafka_2.13-3.6.1/config/
如果你有自定义:
log.dirszookeeper.connectbroker.id✅ 一定要保持一致
/opt/kafka/bin/kafka-server-stop.sh
确认进程已停止:
ps -ef | grep kafka
ln -sfn /opt/kafka_2.13-3.6.1 /opt/kafka
或直接修改 systemd 服务文件中的路径。
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
/opt/kafka/bin/kafka-topics.sh --version
如果你用 systemd:
sudo vim /etc/systemd/system/kafka.service
示例:
[Unit]
Description=Apache Kafka
After=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
重新加载:
sudo systemctl daemon-reload
sudo systemctl restart kafka
| 顺序 | 组件 |
|---|---|
| 1️⃣ | 先升级 Zookeeper(如需要) |
| 2️⃣ | 再升级 Kafka |
| 3️⃣ | 集群中逐个 Broker 升级 |
✅ 不要同时升级所有 Broker
docker pull bitnami/kafka:latest
docker stop kafka
docker rm kafka
docker run -d --name kafka bitnami/kafka:latest
⚠️ 不要直接覆盖原目录
⚠️ 大版本升级前必须看迁移指南
⚠️ inter.broker.protocol.version 可能需要调整
⚠️ Kafka 3.x 默认不再强依赖 Zookeeper(KRaft 模式)
你可以直接告诉我:
我可以给你专属于你环境的升级方案 ✅