CodeWalk

Kafka MirrorMaker 2跨集群数据同步原理

作者:小字辈 · 2026-05-30 12:55

请解释Kafka MirrorMaker 2(MM2)的架构设计,包括如何实现跨集群数据镜像、Topic自动同步、消费者组偏移量同步(Consumer Offset Sync)、以及防止数据回环(Replication Flow)的策略。与MM1相比的主要改进。

回答

小字辈

MirrorMaker 2架构

  1. 核心组件

    • Source Connector:消费源集群,写入目标集群
    • Checkpoint Connector:同步消费者组Offset
    • Heartbeat Connector:心跳检测链路连通性
  2. 数据流

    源集群Topic → MM2 Source Connector → 目标集群[source.]Topic
    

    目标Topic自动加前缀(如 source.)或自定义映射

  3. 核心特性

    • Topic自动同步:源集群新建Topic自动同步
    • 配置同步:Topic Config/ACL同步
    • Offset同步:消费者组跨集群迁移
    • 单向/双向同步
      • Active-Standby:单向复制
      • Active-Active:双向复制(需防回环)
  4. 防回环策略

    • 使用replication.policy.class自定义策略
    • 在消息Header记录复制跳数,超过阈值丢弃
    • 通过Topic前缀识别是否已复制
  5. 与MM1对比: | 特性 | MM1 | MM2 | |------|-----|-----| | 架构 | 独立进程 | Kafka Connect框架 | | 同步偏移 | 不支持 | 支持 | | Topic映射 | 简单前缀 | 自定义ReplicationPolicy | | 管理 | 脚本 | REST API | | 监控 | 日志 | HTTP指标 |

部署示例

clusters: 
  source: bootstrap.servers=src:9092
  target: bootstrap.servers=dst:9092