【问题标题】:How can I see lag in a Kafka MirrorMaker 2.0 instance?如何查看 Kafka MirrorMaker 2.0 实例中的延迟?
【发布时间】:2020-12-22 16:32:53
【问题描述】:

我从原来的 Kafka MirrorMaker 迁移到 MirrorMaker 2.0,以便将主题从一个集群复制到另一个集群。我正在运行一个专用的 MirrorMaker 集群,如 in the docs 所述。

假设我正在复制一个名为 test-topic 的主题。

Cluster A       Cluster B
----------      ----------
test-topic ---> A.test-topic

如何确定A.test-topic 落后于test-topic 多远?

最初的 MirrorMaker 创建了消费者组,所以我提到了该消费者组的滞后。 MirrorMaker 2.0 没有创建消费者组,所以我不能用它来确定延迟。

【问题讨论】:

    标签: apache-kafka apache-kafka-connect apache-kafka-mirrormaker


    【解决方案1】:

    从 KIP-382 开始,有一个指标可以找到复制的记录数。但不是计算滞后的直接方法。 https://cwiki.apache.org/confluence/display/KAFKA/KIP-382%3A+MirrorMaker+2.0#KIP382:MirrorMaker2.0-PublicInterfaces

    【讨论】:

      【解决方案2】:

      我也有同样的用例。在 MM2 中,他们使用 consumer.assign() 而不是 consumer.subscribe() 来消费源集群

      由于 assign 不需要任何 groupId,我们无法使用消费者组获取延迟。

      作为一种解决方法,我做了以下事情:

      1. 每隔 15 分钟会定期运行一个调度程序。
      2. 它将获取源集群主题和目标集群主题的日志结束偏移量。
      3. 我们可以比较这两者,并根据延迟配置警报。

      为了查找日志结束偏移量,我们可以为主题创建消费者,并可以使用 consumer.seekToEnd 并获取该位置。此外,您需要确保在此流程中必须跳过内部主题。

      【解决方案3】:

      您不能直接获得滞后。MM2 在目标集群 {mm2-offets} 中创建内部主题。source-cluster-name.internal .MM2 在此处提交偏移量。消息键是 {topic}-{partition} ,值是 offset 。一种方法是检查源主题的日志结束偏移量,并将其与内部主题中为该分区提交的偏移量进行比较。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-10
        • 2020-05-17
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-21
        相关资源
        最近更新 更多