在 Debian 上,“Kafka 怎样备数据”一般可以理解为 Kafka 数据备份/容灾/高可用。下面从 单机备份、集群冗余、跨机房备份、工具方案 几个层面说明。
Kafka 的“备数据”主要靠 副本机制。
# 创建 topic 时指定副本数
kafka-topics.sh --create \
--bootstrap-server localhost:9092 \
--replication-factor 3 \
--partitions 3 \
--topic test-topic
replication-factor >= 3 是生产建议✅ 这是 Kafka 最关键的“备”
防止数据丢失:
min.insync.replicas=2
生产者:
acks=all
这样:
默认:
/var/lib/kafka/data
或(server.properties 中):
log.dirs=/data/kafka-logs
systemctl stop kafka
rsync -av /data/kafka-logs /backup/kafka-logs-$(date +%F)
systemctl start kafka
⚠️ 不适合生产高频写入
Kafka 不保证直接拷贝 log 文件一致性
官方不推荐直接热备 log.dirs
最标准的 Kafka 备方案
apt install kafka
clusters=primary,backup
primary.bootstrap.servers=10.0.0.1:9092
backup.bootstrap.servers=10.0.1.1:9092
primary->backup.enabled=true
启动:
kafka-mirror-maker.sh \
--config mm2.properties
✅ 支持:
适合:
常见 Sink:
Kafka 本身是可重放的:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test-topic \
--from-beginning
✅ 只要数据没过期(retention.ms)
调整保留时间:
log.retention.hours=168
或永久(不推荐):
log.retention.ms=-1
配合:
rsyncborgrestic只备份:
| 场景 | 推荐方案 |
|---|---|
| 单机房高可用 | RF=3 + ISR |
| 跨机房容灾 | MirrorMaker 2 |
| 合规归档 | Kafka Connect → S3 |
| 快速恢复 | 多副本 + 重放 |
如果你能说明:
我可以给你 具体 Debian 配置示例。