当前位置: 首页 > 知识库问答 >
问题:

Kafka镜子制造商不复制消费群偏移

马沛
2023-03-14

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

但是,当我们在二级集群中启动消费者组时,它从一开始就开始使用消息,因此看起来消费者组偏移量在二级群集中没有得到复制。

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

共有2个答案

寿伟
2023-03-14

我使用镜像生成器2.7.1或更高版本实现了偏移量自动复制。

莫英喆
2023-03-14

乍一看,复制< code>__consumer_offsets主题似乎是个好主意,但它实际上不会像您预期的那样工作。

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

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

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

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

 类似资料:
  • 按照此处提到的解决方案,kafka-mire-maker-fasting-to-复制-消费者-偏移-主题。我能够跨DC1(Live Kafka集群)和DC2(Backup Kafka集群)集群启动镜像制作器而没有任何错误。 看起来它还能够从DC1集群跨DC2集群同步主题。 问题 如果我关闭 DC1 的使用者并将同一使用者(同一group_id)指向 DC2,即使镜像制造商能够同步本主题和分区的偏移

  • 更新: 通过从开始:为目标群集上的使用者设置 false 找到了解决方法。不是最好的解决方案,但它的工作原理... 由于某些原因,所有使用者组偏移量都没有复制到目标群集。例如,我在源集群上用消费者组TEST启动消费者(所有消息都被拉入),然后在复制到目标集群的同一主题上启动消费者(使用消费者组TET),结果是两个消费者都获得了所有消息。 我读过关于消费者补偿翻译功能的文章,但是没有成功。 消费者配

  • 我是Kafka的新手,正在学习Kafka内部知识。请根据需要随时更正我的理解。。 这是我的实时场景..感谢所有的回复: 我有一个接收数据文件的实时FTP服务器…比如索赔文件。 我将把这些数据发布到一个主题中.让我们把这个主题称为claims_topic(2个分区). 我需要订阅这个claims_topic,阅读消息并将它们写入Oracle和Postgres表。让我们将oracle表称为Otable

  • 在Kafka中创建主题后,您可以创建任意数量的消费者组,只需尝试使用这些组来阅读主题。 我想创建一个额外的消费者组来监控真实消费者组的消息内容——一个用来偷看他们消息的组。因此,GUI会让您单击任何消费者组的“偷看”,“偷看”组的偏移量将更新为被监控组的偏移量,然后它会向您显示该偏移量中的消息。 不过我很困惑,因为你不能在第一次就明确地创建一个消费者群体。您似乎必须阅读一条消息才能获得在动物园管理

  • 我正在尝试用Java实现一个简单的生产者-->Kafka-->消费者应用程序。我能够成功地生成和使用消息,但是当我重新启动消费者时,问题就出现了,其中一些已经使用的消息再次被消费者从Kafka中拾取(不是所有的消息,而是最近使用的一些消息)。 我已在我的使用者中设置了,并且我的属性设置为1000毫秒。 “重新传递一些已使用的消息”是一个已知的问题,还是有任何其他设置,我没有在这里? 基本上,有没有