MirrorMaker 2是否支持关闭偏移量复制以解决源集群主题无权限报错
MirrorMaker2 无权限访问内部主题的解决方案
你遇到的TopicAuthorizationException报错是因为MirrorMaker2默认依赖3个内部主题存储运行数据:mm2-offsets.xx.internal、mm2-configs.xx.internal、mm2-status.xx.internal,默认会在Connect worker连接的集群创建这些主题,因为你源集群只有指定主题的访问权限,所以触发了鉴权失败。
方案1:修改Connect Worker配置,内部主题创建到目标集群(无需关闭偏移量同步,更推荐)
该方案不影响原有同步功能,从根源规避源集群权限问题:
修改MirrorMaker2使用的Kafka Connect分布式配置文件(通常为connect-distributed.properties),调整以下参数:
- 将
bootstrap.servers修改为目标集群的地址,后续Connect的所有内部主题都会创建在你有权限的目标集群,不会再向源集群发起内部主题的创建/访问请求 - 源集群的访问配置仅保留在MirrorMaker2连接器的
source.cluster.alias、source.cluster.bootstrap.servers等专项配置中即可
方案2:直接关闭偏移量同步功能
如果确实不需要跨集群同步消费者偏移量,可以通过以下配置关闭对应功能,规避内部主题访问需求:
在MirrorMaker2连接器配置中添加以下参数:
sync.topic.offsets.enabled = false:关闭Topic级别的偏移量同步sync.group.offsets.enabled = false:关闭消费者组级别的偏移量同步
配置生效后重启MM2服务即可消除鉴权报错。
注意事项
- 关闭偏移量同步后,如果你后续需要将消费链路从源集群切换到目标集群,需要手动重置消费者组的偏移量,无法直接复用源集群的消费进度
- 即使关闭偏移量同步,分布式模式的Connect Worker本身仍然需要存储自身的运行偏移量,所以优先推荐使用方案1调整Worker的连接集群配置。
内容的提问来源于stack exchange,提问作者Venelin
相关产品推荐
相关产品推荐

