温馨提示×

ubuntu kafka配置如何升级

小樊
39
2026-08-29 01:28:23
栏目: 智能运维

在 Ubuntu 上升级 Kafka 配置,通常分为 升级 Kafka 软件版本修改 Kafka 配置参数 两类。下面我按常见场景给你一个完整、可操作的说明。


一、升级 Kafka 软件版本(常见)

1️⃣ 查看当前 Kafka 版本

kafka-topics.sh --version
# 或
ls /opt/kafka/libs/kafka_*.jar

2️⃣ 下载新版本 Kafka

以 3.6.1 为例(可换成你需要的版本):

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

3️⃣ 备份原有配置和数据(非常重要)

cp -r /opt/kafka /opt/kafka_bak
cp -r /var/lib/kafka /var/lib/kafka_bak

4️⃣ 迁移配置文件

Kafka 配置文件通常在:

/opt/kafka/config/

主要文件:

  • server.properties
  • producer.properties
  • consumer.properties

新版本结构可能变化,建议 对比迁移

diff /opt/kafka_bak/config/server.properties /opt/kafka_2.13-3.6.1/config/server.properties

重点对比:

  • broker.id
  • log.dirs
  • zookeeper.connect(或 KRaft 配置)
  • listeners
  • advertised.listeners

5️⃣ 升级方式选择

✅ 方式一:滚动升级(生产推荐)

适用于多 broker 集群:

# 一台一台升级
systemctl stop kafka
# 替换软链接
ln -snf /opt/kafka_2.13-3.6.1 /opt/kafka
systemctl start kafka

✅ 方式二:直接替换(单节点)

systemctl stop kafka
ln -snf /opt/kafka_2.13-3.6.1 /opt/kafka
systemctl start kafka

6️⃣ 升级后验证

systemctl status kafka
kafka-broker-api-versions.sh --bootstrap-server localhost:9092

二、升级 Kafka 配置参数(不升级版本)

1️⃣ 修改 server.properties

vim /opt/kafka/config/server.properties

常见需要升级的配置:

# 性能
num.network.threads=8
num.io.threads=16

# 数据目录
log.dirs=/var/lib/kafka-logs

# 监听器
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your_ip:9092

# 日志保留
log.retention.hours=168
log.segment.bytes=1073741824

2️⃣ 重启 Kafka 生效

systemctl restart kafka

三、从 ZooKeeper 升级到 KRaft(重点)

⚠️ Kafka 3.x 起已不再推荐 ZooKeeper

1️⃣ 生成集群 ID

kafka-storage.sh random-uuid

2️⃣ 格式化存储

kafka-storage.sh format -t <uuid> -c /opt/kafka/config/kraft/server.properties

3️⃣ 修改配置

process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093

4️⃣ 启动 KRaft 模式

kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties

四、安全升级(可选)

SSL / SASL

listeners=SASL_SSL://:9093
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256

五、常见错误排查

❌ 版本不兼容

UnsupportedVersionException

✅ 解决:逐步升级(2.8 → 3.0 → 3.6)

❌ broker.id 冲突

Broker id already exists

✅ 检查 meta.properties


六、推荐升级路径(总结)

当前版本 建议目标
< 2.8 先升到 2.8
2.8+ 直接升 3.x
ZooKeeper 升到 KRaft

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

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

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

0