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



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

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

我的问题是:

  1. 在严格单向的场景中,这个源集群偏移同步主题对Mirrormaker有什么用处
  2. 如果它确实是多余的,是否可以在没有权限创建/制作该主题的情况下禁用它或操作mm2
  3. 如果ACL和Config传播被禁用,那么假设AdminClient不用于其他任何事情是否安全

在MirrorMaker代码中,偏移同步主题在启动时很容易由MirrorSourceConnector创建,然后由MirrorSourceTask维护。MirrorSourceConnector中的AdminClient也发生了同样的情况。

我没有找到关闭这些功能的方法,但老实说,我可能在思路上遗漏了一些东西。

Kafka 3.0中引入了一个选项,使MM2不在源集群中创建MM2偏移同步主题,并在目标集群中对其进行操作。

感谢KIP-716:https://cwiki.apache.org/confluence/display/KAFKA/KIP-716%3A+允许+配置+位置+的+偏移量同步+主题+与+MirrorMaker2

拉取请求:

  • https://issues.apache.org/jira/browse/KAFKA-12379
  • https://github.com/apache/kafka/pull/10221

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

因此,要使MM2在目标集群中对MM2偏移量同步主题进行操作,您应该:

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

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

请记住:如果mm2-offset-syncs.dst.internal主题不是在目标集群中手动创建的,那么mm2仍然会尝试在源集群中创建此主题。

在单向复制过程的情况下,此主题是无用的,因为它一直是空的,但MM2无论如何都需要它。

最新更新