在 Linux 上备份 Kafka,通常分为 元数据备份(配置 / Topic / ACL) 和 数据备份(消息数据) 两类。下面按常用且安全的方式说明。
Kafka 配置一般在:
/opt/kafka/config/
或
/etc/kafka/
备份示例:
tar czf kafka-config-$(date +%F).tar.gz /opt/kafka/config
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--describe > kafka-topics-backup.txt
或(更完整):
kafka-topics.sh \
--bootstrap-server localhost:9092 \
--list
kafka-acls.sh \
--bootstrap-server localhost:9092 \
--list > kafka-acls-backup.txt
Kafka 数据目录由 server.properties 中定义:
log.dirs=/data/kafka-logs
systemctl stop kafka
# 或
/opt/kafka/bin/kafka-server-stop.sh
tar czf kafka-data-$(date +%F).tar.gz /data/kafka-logs
✅ 优点:
❌ 缺点:
适合 跨集群 / 容灾
kafka-mirror-maker.sh \
--consumer.config consumer.properties \
--producer.config producer.properties \
--whitelist ".*"
kafka-mirror-maker.sh \
--config mm2.properties
✅ 优点:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic my-topic --from-beginning > backup.json
恢复:
kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic my-topic < backup.json
✅ 适合少量数据
❌ 不适合 TB 级
如果 Kafka < 2.8(依赖 ZooKeeper):
zkCli.sh
> snapshot
或直接备份:
/var/lib/zookeeper
tar xzf kafka-data-2026-01-21.tar.gz -C /
systemctl start kafka
✅ 每天全量数据目录备份
✅ MirrorMaker2 实时同步
✅ 定期备份 Topic / ACL 信息
✅ 备份保留 7~30 天
如果你愿意,我可以:
你现在是 单节点还是集群?Kafka 几版本?