You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MirrorMaker2无法同步compact类型Kafka主题的全部消息,如何解决?

问题猜测验证

你的猜测完全符合MM2的默认运行逻辑,结论正确。
MM2的MirrorSourceConnector默认开启了同批次同key消息去重优化:当同一消费批次内出现同一个key的多条记录时,只会保留该key在批次内的最后一条记录,目的是降低compact主题同步时的无效写放大。
你遇到的场景刚好触发了该逻辑:如果同批次内同一个key先写入非null值,后续跟着对应null值墓碑消息,那么前面的非null值会被直接过滤,不会同步到目标集群。而主题Z无重复key,自然不会触发去重,数据量完全匹配。

全量同步配置方案

如果需要完全复刻源端所有事件(含墓碑消息)实现事件溯源类场景的同步,需要修改以下配置:

连接器核心配置修改

在MirrorSourceConnector的配置中添加/调整以下参数:

  • 关闭同批次去重优化:mirror.source.deduplicate = false,该参数默认值为true,关闭后会同步所有拉取到的记录,不会丢弃同key的历史消息
  • 调大源端消费者接收缓冲区:receive.buffer.bytes = 65536,你当前的8192配置过小,容易出现频繁拉取小批次,提升同key消息落入同一批次的概率
  • 保证消息可靠性:添加sink.producer.acks = all、sink.producer.enable.idempotence = true、sink.producer.max.in.flight.requests.per.connection = 5,避免同步过程中丢消息或乱序

目标端主题配置调整

如果不需要目标端也执行compact清理,建议单独覆盖目标主题的配置:

  • log.cleanup.policy = delete,避免目标端compact后清理掉同key的历史事件
  • log.retention.ms = -1(或者按你的业务保留周期配置),确保所有事件长期留存

可选配置

如果需要同步消费者组位移,添加sync.offsets.enabled = true,保证跨集群消费的位移一致性

内容的提问来源于stack exchange,提问作者imalik8088

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:24:09