gpt4 book ai didi

apache-kafka - 具有高可用性的 kafka 多数据中心

转载 作者:行者123 更新时间:2023-12-04 05:06:31 25 4
gpt4 key购买 nike

我正在不同的 DC 上设置 2 个 kafka v0.10.1.0 集群,并计划使用 mirror-maker 将一个作为源,另一个作为目标,我不确定我的源时如何确保高可用性/main 集群关闭(源 kafka 集群关闭的完整 DC)我是否需要让我的应用程序切换以向目标 kafka 生成消息,当源 kafka 返回时会发生什么?如何使其与可能丢失的消息同步?

谢谢

最佳答案

通过阅读您的问题,我不认为 MirrorMaker 将成为满足您需求的合适工具。

基本上,MirrorMaker 只是一个消费者和一个生产者,它们联系在一起以将消息从一个集群复制到另一个集群。它不是将两个 Kafka 集群以主动-主动配置联系在一起的工具,这听起来很像您正在寻找的东西。

但要按顺序回答您的问题:

Do I need to make my application switch to produce messages to the target kafka?



是的,目前没有故障转移功能,您需要在生产者中实现逻辑,以在 x 条失败消息或 y 分钟内没有消息发送后尝试目标集群或类似的事情。

What will happen when source kafka is back?



几乎没有你自己没有实现的东西:)
MirrorMaker 将再次开始将数据从您的源集群复制到您的目标集群,但是由于您的生产者现在切换到目标集群,源集群没有获取任何数据,因此它们将闲置。
您的生产者将继续生产到目标集群,除非您实现了定期检查源是否重新上线并让它们切换回来。

How to bring it back in sync with the possible lost messages?



当您的源集群重新上线并假设我上面提到的所有事情都发生时,您可以有效地切换集群,这取决于您是希望源作为被写入的主集群还是愿意在发生这种情况时反转角色,您有两个我可以想到的选项:
  • 反转mirrormaker的方向并手动设置消费者组偏移量,使其在源集群死亡的点恢复
  • 停止生产新数据一段时间,将丢失的数据恢复到源集群,切换回生产者并重新启动一切。

  • 这两个选项都需要您手动弄清楚源集群上缺少哪些数据,但我认为没有办法解决这个问题。

    最重要的是,这对于 MirrorMaker 来说不是一件容易的事情,如果源发生故障,您是否真的想将生产者切换到目标集群可能值得再考虑一下。

    你也可以看看 Confluent 的 Replicator ,这可能更适合您正在寻找的内容,并且是他们公司产品的一部分。关于这方面的信息有点少,如果您对此感兴趣,请告诉我,我可以向可以告诉您更多相关信息的人做介绍(或者当然只是发送邮件到 Confluent,这样可以找到合适的人同样)。

    关于apache-kafka - 具有高可用性的 kafka 多数据中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42449177/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com