在 Ubuntu 上迁移 Kafka 配置,通常分为配置文件的迁移和数据(topic、消息)的迁移两部分。下面按常见场景给你一个清晰的操作指南。
通常位于:
/etc/kafka/
/opt/kafka/config/
/usr/local/kafka/config/
常见关键文件:
server.propertiesproducer.propertiesconsumer.propertieszookeeper.properties(如果用 ZK)tar czf kafka-config-backup.tar.gz /etc/kafka
或只复制:
cp -r /etc/kafka /backup/kafka-config
scp user@old-server:/backup/kafka-config-backup.tar.gz .
tar xzf kafka-config-backup.tar.gz -C /
⚠️ 注意修改以下参数(很重要):
broker.id=
listeners=
advertised.listeners=
log.dirs=
zookeeper.connect=
systemctl stop kafka
log.dirs=/var/lib/kafka/logs
rsync -avz /var/lib/kafka/logs/ user@new-server:/var/lib/kafka/logs/
chown -R kafka:kafka /var/lib/kafka/logs
systemctl start kafka
✅ 适合:
适合:
kafka-mirror-maker.sh \
--consumer.config consumer.properties \
--producer.config producer.properties \
--whitelist=".*"
kafka-reassign-partitions.sh \
--bootstrap-server new-broker:9092 \
--reassignment-json-file plan.json \
--execute
scp -r /var/lib/zookeeper user@new-server:/var/lib/
修改:
zookeeper.connect=new-zk:2181
kafka-topics.sh --bootstrap-server localhost:9092 --list
kafka-topics.sh --bootstrap-server localhost:9092 --describe
❌ broker.id 冲突
❌ advertised.listeners 写错
❌ 文件权限不对(kafka 用户无法读写)
❌ 新旧 Kafka 大版本不兼容
如果你能告诉我:
我可以给你更精确的迁移命令。