【问题标题】:How are consumers setup in Active - Active Kafka setup消费者如何在 Active 中设置 - Active Kafka 设置
【发布时间】:2020-07-31 06:04:52
【问题描述】:

我们正在使用 https://strimzi.io/blog/2020/03/30/introducing-mirrormaker2/ 中指定的 Mirror Maker 2.0 进行主题重命名的 Active Active Kafka 集群设置。我相信诸如 us-email 之类的主题设置如下:

dc1

  1. 我们的电子邮件
  2. us-email-dc2(dc2 的镜像)

dc2

  1. 我们的电子邮件
  2. us-email-dc1(dc1 的镜像)

生产者可以发布到其本地 DC,并且两个集群都将包含两个 DC 的数据。到目前为止一切顺利。

消费者应用程序将订阅通配符主题 (us-email-*) 以读取两个 DC 的数据。如果是这种情况,我是否设置消费者从他们各自的 DC 中读取数据?在这种情况下,由于镜像,将有重复的消息读取到达消息。还是建议一次仅将单个消费者组指向单个 DC 以防止重复?如果是,如果单个 DC 发生故障,故障转移将如何发生?

【问题讨论】:

  • 您可以选择从任一 dc 消费,但您应该只从一个消费。如果发生故障转移,您可以使用相同的消费者组从其他 dc 开始消费。在使用之前,请确保使用 RemoteClusterUtils 映射到其他 dc 中的正确偏移

标签: apache-kafka disaster-recovery apache-kafka-mirrormaker


【解决方案1】:

两个数据中心的消费者是否必须指向单个数据中心

消费者不能从多个引导服务器列表中读取,所以是的

有手动故障转移吗?

不清楚你所说的手动是什么意思。

  1. 如果 Mirror 或目标代理失败,则消费者将停止读取任何内容
  2. 如果源已关闭,则镜像停止,返回到 (1)

两个 DC 中的消费者也会收到复制的消息

镜像不保证准确一次交付

【讨论】:

  • “两个数据中心的消费者是否必须指向单个 DC” - 我的问题是,在主动活动配置中,消费者将指向各自的 DC 还是单个 DC?如果我指向他们各自的 DC,我的消费者应用程序将始终收到相同消息的 2 个副本,因为该消息与其他 DC 镜像,反之亦然。这是预期的吗?
  • 它们都可以指向任何一个,但理想情况下,您会想要具有较低延迟/较少网络跃点的那个。无法在目标 DC 读取“源”主题,因为它不存在,因为它将被重命名到目标。
【解决方案2】:

无法进行自动故障转移。每当一个 dc 发生故障时,您必须更新使用者以手动从其他 dc 读取。另外关于消费者偏移量,我不确定它们是否同步,它们是否允许您继续或将消费者视为新的消费者组。

【讨论】:

    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 2019-03-26
    • 2020-05-21
    • 2019-04-04
    • 2019-04-22
    • 1970-01-01
    • 2018-10-20
    • 2019-08-09
    相关资源
    最近更新 更多