在 Debian 上备份 Kafka,通常不是直接拷贝 Kafka 数据目录(虽然可以,但风险高),而是从逻辑备份和物理备份两个层面来做。下面给你一套实战可用的方案。
Kafka 的数据特点:
适合:
假设:
source:9092backup:9092vim mirromaker.properties
# source
bootstrap.servers=source:9092
# target
target.bootstrap.servers=backup:9092
kafka-mirror-maker \
--consumer.config consumer.properties \
--producer.config producer.properties \
--whitelist=".*"
✅ 优点:
❌ 缺点:
kafka-dump / kafka-console-consumer(逻辑备份)适合:
kafka-topics.sh --bootstrap-server localhost:9092 --list > topics.txt
kafka-configs.sh \
--bootstrap-server localhost:9092 \
--entity-type topics \
--describe > topic_configs.txt
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic my_topic \
--from-beginning \
--timeout-ms 60000 > my_topic.json
✅ 恢复时:
kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic my_topic < my_topic.json
⚠ 注意:
⚠ 仅在完全停服时做
systemctl stop kafka
cp -a /var/lib/kafka /backup/kafka-$(date +%F)
或 tar:
tar czf kafka-backup.tar.gz /var/lib/kafka
systemctl stop kafka
rm -rf /var/lib/kafka
cp -a /backup/kafka-xxx /var/lib/kafka
systemctl start kafka
❌ 风险:
0 2 * * * /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list > /backup/topics.txt
rsync -av /etc/kafka /backup/kafka-config
✅ 生产环境推荐组合:
❌ 不要只靠:
如果你愿意,我可以:
你现在的 Kafka 是单节点还是集群?