在 Ubuntu 上升级 Kafka 配置,通常分为 升级 Kafka 软件版本 和 修改 Kafka 配置参数 两类。下面我按常见场景给你一个完整、可操作的说明。
kafka-topics.sh --version
# 或
ls /opt/kafka/libs/kafka_*.jar
以 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
cp -r /opt/kafka /opt/kafka_bak
cp -r /var/lib/kafka /var/lib/kafka_bak
Kafka 配置文件通常在:
/opt/kafka/config/
主要文件:
server.propertiesproducer.propertiesconsumer.properties新版本结构可能变化,建议 对比迁移:
diff /opt/kafka_bak/config/server.properties /opt/kafka_2.13-3.6.1/config/server.properties
重点对比:
适用于多 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
systemctl status kafka
kafka-broker-api-versions.sh --bootstrap-server localhost:9092
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
systemctl restart kafka
⚠️ Kafka 3.x 起已不再推荐 ZooKeeper
kafka-storage.sh random-uuid
kafka-storage.sh format -t <uuid> -c /opt/kafka/config/kraft/server.properties
process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
kafka-server-start.sh -daemon /opt/kafka/config/kraft/server.properties
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 already exists
✅ 检查 meta.properties
| 当前版本 | 建议目标 |
|---|---|
| < 2.8 | 先升到 2.8 |
| 2.8+ | 直接升 3.x |
| ZooKeeper | 升到 KRaft |
如果你愿意,可以告诉我:
我可以给你 精确到命令级别的升级方案。