gpt4 book ai didi

apache-kafka - 保持两个 kafka 集群同步的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-03 23:30:55 25 4
gpt4 key购买 nike

我必须在两个不同的数据中心 (DC) 中设置两个 kafka 集群,它们具有相同的主题和配置。原因是两个数据中心之间的连接很糟糕,我们无法创建一个全局的。

我们让生产者和消费者发布和订阅每个 DC 的主题。

问题是我需要保持两个集群同步。
让我们说:所有写入第一个 DC 的消息最终都应该复制到第二个 DC,反之亦然。

我正在评估 kafka MirrorMaker 工具,方法是通过使用第一个消息并将消息发送到第二个来创建镜像。但是,也需要将数据从第二个复制到第一个,因为在两个集群中都允许写入数据。

我认为 Kafka MirrorMaker 工具不适合我们的情况。
有什么建议吗?

提前致谢。

最佳答案

根据您的具体要求,您可以将 MirrorMaker 用于您的用例。

一种选择是只有两个单独的主题,让它们在集群 1 上称为 topic1,在集群 2 上称为 topic2。所有生产线程都写入“本地”主题,然后使用 mirrormaker 将此主题复制到远程集群。

对于您的消费者,您只需订阅离您最近的集群的两个主题,这样您就可以获得在任一集群上写入的所有记录。
我创建了一个插图,希望能有所帮助:

enter image description here

或者,您可以在两个集群上创建聚合主题,并使用 MirrorMaker 将数据复制到此主题中,这将使您能够将所有数据集中在一个主题中以供使用。
通过这种方式,您将在同一集群上拥有重复数据,但您可以通过降低输入主题的保留设置来解决此问题。
再次,希望下面的图片有助于解释我的想法:
enter image description here
为了让这个工作,你需要配置 MirrorMaker 将一个主题复制到一个不同名称的主题中,这不是它的标准做法,我写了一个小 blog post如果您想进一步调查此选项,请了解如何执行此操作。

关于apache-kafka - 保持两个 kafka 集群同步的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42061061/

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