在 Debian 上部署的 Kafka 容灾,核心目标通常是 防止单点故障(节点/机房/区域失效)导致数据丢失或服务不可用。下面从 架构层面 → 配置层面 → 运维层面 系统说明。
Kafka 容灾一般分三层:
在 Debian 上至少 3 个 Broker(生产建议 3–5 个)。
broker1 (Debian)
broker2 (Debian)
broker3 (Debian)
replication.factor=3
min.insync.replicas=2
含义:
acks=all
retries=Integer.MAX_VALUE
enable.idempotence=true
适合:
IDC-A (Debian Kafka)
↓ MirrorMaker2
IDC-B (Debian Kafka)
# 使用 Kafka 自带工具
bin/connect-mirror-maker.sh config/mm2.properties
clusters=dc1,dc2
dc1.bootstrap.servers=10.0.0.1:9092
dc2.bootstrap.servers=10.0.1.1:9092
dc1->dc2.enabled=true
dc2->dc1.enabled=true
topics=.*
replication.factor=3
✅ 优点:
zk1
zk2
zk3
建议:
Debian 新部署建议直接用 KRaft:
process.roles=broker,controller
controller.quorum.voters=1@host1:9093,2@host2:9093,3@host3:9093
✅ 少一个依赖,容灾更简单
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic my-topic --from-beginning > backup.json
/var/lib/kafkarsync / snapshot⚠️ 不推荐作为主方案
主集群不可用
→ 应用切到灾备集群
→ 恢复后重新同步
✅ 最佳实践
3 Broker + KRaft
跨可用区部署
MirrorMaker2 异地灾备
Prometheus 监控
如果你愿意,我可以: