我从最初的kafka mirrormaker迁移到mirrormaker 2.0,以便将主题从一个集群复制到另一个集群。我正在运行一个专用的mirrormaker集群,如文档中所述。
假设我正在复制一个名为 test-topic
.
Cluster A Cluster B
---------- ----------
test-topic ---> A.test-topic
我怎样才能确定有多远 A.test-topic
在后面 test-topic
?
最初的mirrormaker创建了消费群体,所以我提到了该消费群体的滞后性。MirrorMaker2.0没有创建消费者组,所以我不能用它来确定延迟。
4条答案
按热度按时间62o28rlo1#
不能直接获取lags.mm2在目标集群{mm2 offets}.source-cluster-name.internal.mm2中创建内部主题。消息键是{topic}-{partition},值是offset。一种方法是检查源主题的日志结束偏移量,并将其与内部主题中为该分区提交的偏移量进行比较。
i34xakig2#
参见监控镜制造商2
mirrormaker2的操作应与任何其他使用者组相同(因为它使用connect框架)。组将以前缀
connect-
,然后是连接器"name"
你给它的财产你可以用
kafka-consumer-groups
命令,或者可以导出到burrow或prometheus等外部工具kokeuurv3#
我也有同样的用例。在mm2中,它们使用consumer.assign()而不是consumer.subscribe()来消费源集群
由于assign不需要任何groupid,因此我们无法使用consumer组获得延迟。
作为解决办法,我做了以下工作:
计划程序将定期运行,比如每15分钟运行一次。
它将获取源集群主题和目标集群主题的日志结束偏移量。
我们可以将两者进行比较,并基于滞后,配置警报。
为了找到日志结束偏移量,我们可以为主题创建一个使用者,并可以使用consumer.seektoend获取该位置。另外,您需要确保在这个流中必须跳过内部主题。
piztneat4#
在kip-382中,有一个度量来查找复制的记录数。但不是计算滞后的直接方法。https://cwiki.apache.org/confluence/display/kafka/kip-382%3a+mirrormaker+2.0#kip382:mirrormaker2.0-publicinterfaces