温馨提示×

debian kafka怎样备份

小樊
50
2026-09-25 04:53:43
栏目: 智能运维

在 Debian 上备份 Kafka,通常要分两部分来看:

  1. Kafka 数据本身(topic 消息)
  2. Kafka 元数据(topic 配置、ACL、消费位移等)

下面按常见做法说明。


一、Kafka 数据备份(消息数据)

方式 1:利用 Kafka 多副本(推荐,生产环境)

Kafka 本身通过 replication 保证高可用:

  • replication.factor >= 3
  • min.insync.replicas = 2

✅ 这不算传统“备份”,但能防止数据丢失
✅ 适合 99% 生产环境


方式 2:文件系统级备份(冷备份)

⚠️ 必须停 Kafka 或确保停止写入

1. 停止 Kafka

sudo systemctl stop kafka

2. 备份数据目录

默认数据目录(取决于配置):

/var/lib/kafka/data
# 或
/tmp/kafka-logs

查看实际路径:

grep log.dirs /etc/kafka/server.properties

备份:

tar czf kafka-data-$(date +%F).tar.gz /var/lib/kafka/data

3. 启动 Kafka

sudo systemctl start kafka

✅ 适合 小集群 / 测试环境


方式 3:使用 MirrorMaker(跨集群备份,推荐生产)

MirrorMaker2(Kafka 自带)

用于:

  • 异地容灾
  • 集群迁移

示例:

bin/kafka-mirror-maker.sh \
  --consumer.config consumer.properties \
  --producer.config producer.properties \
  --whitelist ".*"

✅ 支持实时同步
✅ 不影响源集群


二、Kafka 元数据备份(重要)

1. 备份 Topic 配置

kafka-topics.sh --bootstrap-server localhost:9092 \
  --describe > kafka-topics-backup.txt

2. 备份 ACL(如果启用)

kafka-acls.sh --bootstrap-server localhost:9092 --list > kafka-acls.txt

3. KRaft / ZooKeeper 元数据

ZooKeeper 模式

zkCli.sh
> save /path/zk-backup.dump

或:

tar czf zk-data-backup.tar.gz /var/lib/zookeeper

KRaft 模式(新版本 Kafka)

/var/lib/kafka/meta.properties

三、Debian 系统级备份建议

  • 使用 rsync 定时备份:
rsync -avz /var/lib/kafka/data backup@backup-server:/kafka-backup/
  • 配合 cron 每日执行

四、恢复方式简述

  • 文件恢复:停 Kafka → 覆盖数据目录 → 启动
  • MirrorMaker:直接切换消费端到目标集群
  • Topic 恢复:
kafka-topics.sh --create --bootstrap-server ...

总结建议

场景 推荐方式
生产环境 多副本 + MirrorMaker
测试环境 tar 备份数据目录
容灾 MirrorMaker2
配置备份 topics / acls 导出

如果你能告诉我:

  • Kafka 版本
  • 是否用 ZooKeeper / KRaft
  • 单机还是集群

我可以给你一套 具体可执行的 Debian 备份脚本。

0 踩