在 Debian 上备份 Kafka 数据,通常分两类:元数据(Topic 配置)备份 和 消息数据(Log 文件)备份。下面按常见、可靠的方式说明。
默认情况下(取决于你的安装方式):
/var/lib/kafka/data 或 /opt/kafka/logs/etc/kafka//var/lib/zookeeperKafka 3.x 以后推荐使用 KRaft 模式,不再依赖 ZooKeeper。
适用场景:整机迁移、灾备
# 停止 Kafka(非常重要)
systemctl stop kafka
# 备份数据目录
tar czf kafka-data-$(date +%F).tar.gz /var/lib/kafka/data
# 启动 Kafka
systemctl start kafka
✅ 优点:简单、完整
❌ 缺点:需要停服
使用 Kafka 自带的消费者工具
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic my_topic \
--from-beginning > my_topic_backup.json
恢复:
kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic my_topic < my_topic_backup.json
✅ 不停机
❌ 不支持 key / partition / timestamp 精确恢复
适合 跨机房 / 跨集群
kafka-mirror-maker.sh \
--consumer.config consumer.properties \
--producer.config producer.properties \
--whitelist ".*"
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--list > topics.txt
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--describe > topics-describe.txt
恢复时手动重建:
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--create \
--topic my_topic \
--partitions 3 \
--replication-factor 2
systemctl stop zookeeper
tar czf zk-data.tar.gz /var/lib/zookeeper
systemctl start zookeeper
备份:
/var/lib/kafka/kraft-logs
/etc/kafka/server.properties
0 2 * * * tar czf /backup/kafka-data-$(date +\%F).tar.gz /var/lib/kafka/data
| 场景 | 推荐方式 |
|---|---|
| 单机 / 测试 | 直接 tar 备份数据目录 |
| 生产环境 | MirrorMaker + Topic 配置备份 |
| 云环境 | 云盘快照 |
| 精确恢复 | 自研 Consumer + Producer |
如果你愿意,可以告诉我:
我可以给你一套 完全贴合你环境的备份脚本。