在源 kafka 集群上禁用 mirrormaker2 偏移同步主题

Disable mirrormaker2 offset-sync topics on source kafka cluster

我们正在使用 MirrorMaker2 将一些主题从一个 kerberized kafka 集群复制到另一个 kafka 集群(严格单向)。我们不控制源 kafka 集群,我们只能访问描述和阅读要使用的特定主题。

MirrorMaker2 在源集群中创建并维护一个主题 (mm2-offset-syncs) 来为每个正在复制的主题分区编码集群到集群的偏移映射,并在源中创建一个 AdminClient集群来处理 ACL/Config 传播。因为 MM2 需要授权才能在源集群中创建和写入这些主题,或者通过 AdminClient 执行操作,我试图理解 why/if 我们的场景需要这些机制。

我的问题是:

  1. 在严格单向的情况下,这个源集群偏移同步主题对 Mirrormaker 有什么用处?
  2. 如果确实是多余的,是否可以禁用它或在不访问本主题的情况下运行 mm2 create/produce?
  3. 如果禁用 ACL 和配置传播,是否可以安全地假设 AdminClient 未用于任何其他用途?

在 MirrorMaker 代码中,偏移同步主题 it is readily created by MirrorSourceConnector when it starts and then maintained by the MirrorSourceTask. The same happensMirrorSourceConnector 中的 AdminClient。

我找不到关闭这些功能的方法,但老实说,我的思路可能漏掉了一些东西。

Kafka 3.0中引入了一个选项,使MM2不在源集群中创建mm2-offset-syncs主题,在目标集群中对其进行操作。

感谢 KIP-716:https://cwiki.apache.org/confluence/display/KAFKA/KIP-716%3A+Allow+configuring+the+location+of+the+offset-syncs+topic+with+MirrorMaker2

拉取请求:

Tim Berglund 在 Kafka 3.0 版本中注意到这个 KIP-716:https://www.youtube.com/watch?v=7SDwWFYnhGA&t=462s

因此,要使 MM2 对目标集群中的 mm2-offset-syncs 主题进行操作,您应该:

  1. 设置选项 src->dst.offset-syncs.topic.location = 目标
  2. 在目标集群中手动创建 mm2-offset-syncs.dst.internal 主题
  3. 开始 MM2

src 和 dst - 是别名的示例,请将其替换为您的别名。

记住:如果mm2-offset-syncs.dst.internal主题没有在目标集群中手动创建,那么MM2仍然会尝试在源集群中创建这个主题。

如果是单向复制过程,这个主题是无用的,因为它一直是空的,但是 MM2 无论如何都需要它。