我有一个部署,我们使用 kafka 从服务发送消息。但是我们需要在所有地区都拥有 Kafka 大师。因此,一旦消息在 1 个数据中心推送,它应该在其他数据中心同步。当它再次在其他数据中心完成时,它应该同步回来。 Mirror Maker 可以提供从 1 到其他的同步,但我如何实现双向同步?
最佳答案
Kafka 中没有 Master-Master 复制,Kafka MirrorMaker 只能做一个方向的镜像。
为什么 ?
Kafka MirrorMaker 基本上是生产者和消费者将事件从一个 DC 传输到另一个 DC 的组合,在此过程中,镜像主题的偏移量将与源集群中的偏移量不同。现在,如果我们想要双向,就必须跟踪一端产生的消息,如果不对所有消费者和生产者进行太多调整,这很难(不值得)。
没有办法在 Kafka 中运行 make mirrormaker 来进行 master-master 类型的复制,它只会以循环结束。
如果您想实现您的要求,您可能必须保留数据中心特定主题并将它们聚合到一个主主题。
假设您想从 DC1 和 DC2 向 topicA 生成消息。
关于apache-kafka - **Kafka** 跨区域数据中心之间的双向同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39020692/