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

Apache Kafka 4.0 MirrorMaker2消费者偏移量同步异常求助

Apache Kafka 4.0 MirrorMaker 2 消费者偏移量同步问题及解决方案问询

环境与部署配置

  • 基于Apache Kafka 4.0 + MirrorMaker 2构建主集群(clusterA)到备集群(clusterB)的灾备链路,备集群仅在灾难恢复事件发生时才接入生产与消费流量
  • 独立部署MirrorMaker 2节点
  • 使用IdentityReplicationPolicy(不重命名主题)
  • 正常运行状态下无客户端连接备集群

MirrorMaker 2 核心配置

# Cluster aliases
clusters = clusterA, clusterB

# Bootstrap servers
clusterA.bootstrap.servers = serverA-kafka-1:9092
clusterB.bootstrap.servers = serverB-kafka-1:9092

# Replication policy
replication.policy.class=org.apache.kafka.connect.mirror.IdentityReplicationPolicy

# Offset/Checkpoint sync
emit.checkpoints.enabled=true
emit.checkpoints.interval.seconds=5
sync.group.offsets.enabled=true
sync.group.offsets.interval.seconds=5
offset.lag.max=10
refresh.topics.interval.seconds=5

测试结果

  1. MirrorMaker运行时生产300条消息
    • 预期:主题偏移量1分钟内完成同步
    • 结果:✅ 测试通过
  2. MirrorMaker运行时消费100条消息后终止消费者
    • 预期:消费者偏移量同步至clusterB
    • 结果:❌ 测试失败——偏移量未同步
  3. 测试2后重启MirrorMaker
    • 预期:消费者偏移量完成同步
    • 结果:✅ 测试通过
  4. 重复测试2——MirrorMaker运行时消费100条消息后终止消费者
    • 预期:消费者偏移量完成同步
    • 结果:❌ 测试失败——偏移量未同步
  5. 测试4后重启MirrorMaker
    • 预期:消费者偏移量完成同步
    • 结果:❌ 测试失败——偏移量未同步
  6. 保持消费者运行状态下消费消息
    • 预期:偏移量完成同步
    • 结果:✅ 测试通过

问题现象总结

消费者偏移量仅能在以下场景完成同步:

  • MirrorMaker重启且备集群中不存在该消费者偏移量(初始同步);
  • 同步时消费者处于连接状态,或消费者已消费完主题所有消息(到达主题末尾)。

异常场景:若消费者在消费部分消息后立即退出(未消费完主题全量消息),已提交的偏移量永远无法同步至目标集群。

相关背景

该问题与Apache Kafka邮件列表中讨论的「MirrorCheckpointConnector无法复制最后一批偏移量」问题相符。

技术问询

是否可通过MirrorMaker 2或其他方案实现消费者偏移量的可靠同步?要求:即使消费者已退出或未消费至主题末尾,偏移量最终仍能完成同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 12:42:39