集群迁移时,迁移后的kafka消费者重新分区后表现如何?

问题描述 投票:0回答:1

我对消费者的行为有一些概念上的疑问。

集群迁移为当前集群中过度分区或分区不足的主题重新分区提供了很好的机会。

  1. 因此,在目标集群中重新分区的情况下,偏移量为 目标集群中的记录映射不会相同 作为来源。这是否意味着消费者无法恢复工作 目标集群从其在源集群中留下的位置开始 __consumer-offsets 不会有相同的映射?

  2. Replicator 使用时间戳进行偏移量翻译,这有帮助吗 在这种情况下。?如果是,则复制器的翻译不能用于 Java 客户端以外的客户端。我该如何管理这种情况 除了 Java 客户端之外?

  3. 我不确定集群链接是否允许您按原样重新分区 字节到字节的复制。您也能帮我理解这一点吗? MM2有什么配置可以解决这个问题吗?

请帮我理解这一点,谢谢。

apache-kafka kafka-consumer-api apache-kafka-connect apache-kafka-mirrormaker
1个回答
0
投票

不确定您所追求的迁移策略,但您可以与以下内容相关联。如果您要从一个基础设施迁移到另一个基础设施

在消费者端

设置auto.offset.reset=earest,以便所有新产生的事件将从所有相应分区的偏移0处选取。应该打勾,首先移动生产者并等待现有消费者耗尽所有消息,然后将消费者移动到新集群。

并从文档中澄清您的担忧

  1. MirrorMaker包含一个实用程序类RemoteClusterUtils,使消费者能够 当以下情况时,通过偏移量转换来查找 DR 集群中的最后一个检查点偏移量: 从主集群进行故障转移。支持消费者定期迁移 offsets 是在 2.7.0 中添加的,用于自动将转换后的偏移量提交到目标 __consumer_offsets 主题,以便切换到 DR 集群的消费者可以 从主集群中中断的位置重新启动,不会丢失数据,并且重复处理最少。迁移偏移量的消费者组可以是 定制的,并且为了增加保护,MirrorMaker 不会覆盖偏移量,如果 目标集群上的消费者正在积极使用目标消费者组, 从而避免任何意外冲突。

  2. Mirror‐Maker,使用 Kafka 主题来存储偏移翻译元数据。只要两个偏移之间的差异发生变化,偏移就会被存储。例如,如果主节点上的偏移量 495 映射到 DR 集群上的偏移量 500,我们将在外部存储或偏移量转换主题中记录 (495,500)。如果稍后由于重复而差异发生变化,并且偏移量 596 映射到 600,那么我们将记录新的映射 (596,600)。不需要存储495到596之间的所有偏移映射;我们只是假设差异保持不变,因此主集群中的偏移量 550 将映射到 DR 中的 555。然后,当发生故障转移时,我们不是将时间戳(总是有点不准确)映射到偏移量,而是将主偏移量映射到 DR 偏移量并使用它们。前面列出的两种技术之一可用于强迫消费者开始使用新的 与映射的偏移。

  3. 没有。 MirrorMaker 定期检查源集群中的新主题,如果它们与配置的模式匹配,则自动开始镜像这些主题。如果源主题添加更多分区,则分区数量相同 自动添加到目标主题,确保源主题中的事件 在目标主题中以相同的顺序出现在相同的分区中。

© www.soinside.com 2019 - 2024. All rights reserved.