MM2偏移量同步:灾备场景下未创建消费者组时能否同步?
MirrorMaker 2灾备场景下消费者组偏移量同步实践解答
核心问题解答
当MM2配置sync.group.offsets.enabled: true时,即使备用集群尚未创建目标消费者组,主集群的消费者组偏移量仍会被同步到备用集群。
MM2的偏移量同步逻辑是直接操作备用集群的__consumer_offsets内部主题,会主动写入对应消费者组的偏移量记录,不需要依赖备用集群上存在该消费者组。灾备切换后,只要启动同组消费者,就能直接读取这些已同步的偏移量,从主集群中断的位置继续消费。
实际生产实践经验
我们团队在跨区域灾备架构中落地过这个场景:
- 日常状态下,备用集群仅运行MM2同步主集群的消息和消费者偏移量,无任何业务消费者在线;
- 某次主集群因机房网络故障不可用,我们在备用集群快速启动了与主集群同组的业务消费者,这些消费者直接读取到MM2同步的最新偏移量,没有出现重复消费或消息遗漏的情况;
- 实践中的注意事项:
- 调整
sync.group.offsets.interval.seconds配置,建议设置为10-30秒,平衡偏移量同步的实时性和MM2的负载; - 必须保证主备集群的主题分区数完全一致,否则会出现偏移量与分区不匹配的同步错误;
- 灾备切换完成后,需临时暂停MM2的偏移量同步(或修改同步方向),避免主集群恢复后出现双向同步导致的偏移量混乱。
- 调整
内容的提问来源于stack exchange,提问作者barsik0
相关产品推荐
相关产品推荐

