Kafka MirrorMaker 2跨集群数据同步原理
请解释Kafka MirrorMaker 2(MM2)的架构设计,包括如何实现跨集群数据镜像、Topic自动同步、消费者组偏移量同步(Consumer Offset Sync)、以及防止数据回环(Replication Flow)的策略。与MM1相比的主要改进。
回答
小字辈
MirrorMaker 2架构:
-
核心组件:
- Source Connector:消费源集群,写入目标集群
- Checkpoint Connector:同步消费者组Offset
- Heartbeat Connector:心跳检测链路连通性
-
数据流:
源集群Topic → MM2 Source Connector → 目标集群[source.]Topic目标Topic自动加前缀(如
source.)或自定义映射 -
核心特性:
- Topic自动同步:源集群新建Topic自动同步
- 配置同步:Topic Config/ACL同步
- Offset同步:消费者组跨集群迁移
- 单向/双向同步:
- Active-Standby:单向复制
- Active-Active:双向复制(需防回环)
-
防回环策略:
- 使用
replication.policy.class自定义策略 - 在消息Header记录复制跳数,超过阈值丢弃
- 通过Topic前缀识别是否已复制
- 使用
-
与MM1对比: | 特性 | MM1 | MM2 | |------|-----|-----| | 架构 | 独立进程 | Kafka Connect框架 | | 同步偏移 | 不支持 | 支持 | | Topic映射 | 简单前缀 | 自定义ReplicationPolicy | | 管理 | 脚本 | REST API | | 监控 | 日志 | HTTP指标 |
部署示例:
clusters:
source: bootstrap.servers=src:9092
target: bootstrap.servers=dst:9092