如何查看 Kafka MirrorMaker 2.0 实例中的延迟?

bla*_*iet 3 apache-kafka apache-kafka-connect apache-kafka-mirrormaker

我从最初的 Kafka MirrorMaker 迁移到MirrorMaker 2.0,以便将主题从一个集群复制到另一个集群。我正在运行一个专用的 MirrorMaker 集群,如文档中所述。

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

Cluster A       Cluster B
----------      ----------
test-topic ---> A.test-topic
Run Code Online (Sandbox Code Playgroud)

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

最初的 MirrorMaker 创建了消费者组,所以我提到了该消费者组的滞后。MirrorMaker 2.0 不会创建消费者组,因此我无法使用它来确定延迟。

Hem*_*ath 5

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

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

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

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

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

  • [报告`replication-latency` MBean](https://github.com/apache/kafka/tree/trunk/connect/mirror#monitoring-an-mm2-process) (2认同)