温馨提示×

怎样升级debian kafka

小樊
43
2026-09-07 00:16:17
栏目: 智能运维

在 Debian 系统上升级 Kafka,通常不是用 apt 直接升级(Debian 官方仓库里的 Kafka 版本往往很旧),而是手动下载新版本并平滑迁移。下面按最常用、最安全的做法说明。


一、升级前准备

1. 查看当前版本

kafka-server-start.sh --version
# 或
cat /opt/kafka/README.md | grep version

2. 备份重要数据(非常重要)

# 配置
cp -r /opt/kafka/config /opt/kafka/config.bak

# 数据(如果你的 log.dirs 在这里)
cp -r /var/lib/kafka /var/lib/kafka.bak

3. 查看 Kafka 兼容关系

⚠️ Kafka 版本不能乱跳

  • 0.10 → 0.11 → 1.x → 2.x → 3.x(逐步升级)
  • 跨大版本必须看官方升级文档
    https://kafka.apache.org/documentation/#upgrade

二、下载并安装新版本 Kafka

1. 停止旧 Kafka

systemctl stop kafka
# 或
/opt/kafka/bin/kafka-server-stop.sh

2. 下载新版本

cd /opt
wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
tar -xzf kafka_2.13-3.7.0.tgz

3. 使用旧配置

cp /opt/kafka/config.bak/server.properties \
   /opt/kafka_2.13-3.7.0/config/server.properties

4. 切换目录

rm -f /opt/kafka
ln -s /opt/kafka_2.13-3.7.0 /opt/kafka

三、升级协议版本(关键)

编辑 server.properties

inter.broker.protocol.version=CURRENT_VERSION
log.message.format.version=CURRENT_VERSION

例如从 3.5 → 3.7:

inter.broker.protocol.version=3.5
log.message.format.version=3.5

启动后确认无误,再改成新版本并重启。


四、启动并验证

systemctl start kafka
# 或
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

检查:

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

五、如果是集群(重要)

  1. 一台一台升级(rolling upgrade)
  2. 每台的 inter.broker.protocol.version 保持一致
  3. 全部升级完成后再统一提升协议版本

六、如果你是用 apt 安装的(不推荐)

apt update
apt upgrade kafka

⚠️ 缺点:

  • 版本极旧
  • 配置路径混乱
  • 不适合生产环境

七、常见坑

  • JDK 版本不匹配(Kafka 3.x 需要 JDK 11+)
  • zookeeper 还是 KRaft 模式混用
  • 直接覆盖 bin 目录导致配置丢失

如果你愿意,可以告诉我:

  • 当前 Kafka 版本
  • 是否集群
  • 是否用 systemd
  • Debian 版本

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

0