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

Kafka MirrorMaker 2.0 复制流问题:始终仅写入同一集群

Kafka MirrorMaker 2.0 单向复制异常排查方案

核心问题根因优先级排序

  • 第一优先级:配置转义字符错误
    你当前配置中复制流的箭头使用了HTML转义字符>,Properties配置文件无法识别该转义符,等于west->central.enabled = true这条配置完全没有生效,MM2无法识别到你定义的复制流向,会默认加载残留的旧配置或者反向流配置。
    请直接修改配置文件中的复制流配置,去掉转义符,写成原生格式:
west->central.enabled = true
central->west.enabled = false
  • 第二优先级:MM2内部主题残留旧配置
    MM2底层基于Kafka Connect运行,首次启动后会把所有配置持久化到集群的内部主题中,后续重启会优先读取集群存储的旧配置,完全忽略本地配置文件的改动,这就是你修改了bootstrap地址仍然不生效的核心原因。

修复步骤

  1. 清理两个集群中所有遗留的MM2内部主题,避免旧配置干扰:
# 查看west集群MM2相关主题
kafka-topics.sh --bootstrap-server kafka-west.com:30002 --list | grep -E "mm2-|checkpoints.internal|heartbeats"
# 批量删除west集群旧MM2主题
kafka-topics.sh --bootstrap-server kafka-west.com:30002 --delete --topic "mm2-.*" --topic ".*checkpoints.internal" --topic heartbeats

# 对central集群执行同样的清理操作
kafka-topics.sh --bootstrap-server kafka-central.com:30002 --list | grep -E "mm2-|checkpoints.internal|heartbeats"
kafka-topics.sh --bootstrap-server kafka-central.com:30002 --delete --topic "mm2-.*" --topic ".*checkpoints.internal" --topic heartbeats

如果集群开启了主题删除保护,需要先临时调整delete.topic.enable=true配置再执行删除

  1. 给本次灾备场景的MM2配置单独指定新的内部主题前缀,完全隔离旧配置:
    在mm2.properties中新增如下配置:
# 自定义内部主题前缀,避免和历史配置冲突
config.storage.topic = mm2-configs-west-central-dr
offset.storage.topic = mm2-offsets-west-central-dr
status.storage.topic = mm2-status-west-central-dr
# 显式指定要同步west集群的所有主题到central,避免默认过滤规则漏掉数据
west->central.topics = .*
west->central.groups = .*
  1. 启动MM2后验证日志,确认复制流正常加载:
    搜索启动日志中的关键字Replicating from,确认输出Replicating from west to central的日志,代表复制流配置已经生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:54:05