首页 > 解决方案 > Kafka Mirror Maker 不复制消费者组偏移量

问题描述

我们已经设置了 MirrorMaker 来跨两个 Kafka 集群复制消息。我们还设置exclude.internal.topic=false了镜像制造商消费者属性来复制内部主题。我假设这也将复制__consumer_offset topic,这将反过来同步辅助集群中的消费者组偏移量。

但是当我们在辅助集群中启动消费者组时,它从一开始就开始消费消息,所以看起来消费者组偏移量没有在辅助集群中复制。

谁能提供一些建议,我们如何使用 MirrorMaker 或任何其他解决方案同步辅助集群中的消费者组偏移量?

标签: apache-kafkaapache-kafka-mirrormaker

解决方案


乍一看,复制该__consumer_offsets主题似乎是个好主意,但实际上并不会像您期望的那样工作。

在跨不同集群复制主题时,在大多数情况下,源集群和目标集群之间的记录偏移量会有所不同。两个集群之间偏移量不同的原因包括:

  • 由于其至少一次语义,来自 Mirror Maker 的重复消息
  • 由于重试,消息顺序不同
  • 由于保留限制,源集群上的第一个偏移量不为零

这使得__consumer_offsets目标集群中无用的内容。

Mirror Maker 2将成为 Kafka 2.4(预计于 2019 年 11 月/12 月发布)的一部分,提供了一种“转换”偏移量的方法,因此消费者可以在集群之间轻松迁移。


推荐阅读