apache-kafka - **Kafka** 跨区域数据中心之间的双向同步

标签 apache-kafka confluent-platform

我有一个部署,我们使用 kafka 从服务发送消息。但是我们需要在所有地区都拥有 Kafka 大师。因此,一旦消息在 1 个数据中心推送,它应该在其他数据中心同步。当它再次在其他数据中心完成时,它应该同步回来。 Mirror Maker 可以提供从 1 到其他的同步,但我如何实现双向同步?

最佳答案

Kafka 中没有 Master-Master 复制,Kafka MirrorMaker 只能做一个方向的镜像。

为什么 ?
Kafka MirrorMaker 基本上是生产者和消费者将事件从一个 DC 传输到另一个 DC 的组合,在此过程中,镜像主题的偏移量将与源集群中的偏移量不同。现在,如果我们想要双向,就必须跟踪一端产生的消息,如果不对所有消费者和生产者进行太多调整,这很难(不值得)。
没有办法在 Kafka 中运行 make mirrormaker 来进行 master-master 类型的复制,它只会以循环结束。

如果您想实现您的要求,您可能必须保留数据中心特定主题并将它们聚合到一个主主题。

假设您想从 DC1 和 DC2 向 topicA 生成消息。

  • 在 DC1 中有 topicA-DC1,在 DC2 中有 topicA-DC2。并且在 DC1 和 DC2 中都有主主题 topicA。
  • 您的 mirromaker 应该具有从 topicA-DC1 和 topicA-DC2 聚合到两个数据中心中主主题 topicA 的消息。
  • 关于apache-kafka - **Kafka** 跨区域数据中心之间的双向同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39020692/

    相关文章:

    java - KTables如何获得它们的初始值?

    elasticsearch - 如何在 kafka-connect 汇合平台的 elasticsearch sink 连接器配置中使用 ca cert?

    mysql - 在 jdbc 连接器中使用增量摄取的问题

    amazon-s3 - Kafka Connect Distributed tasks.max 配置设置的理想值?

    docker - 卡夫卡连接 : Multiple DB2 JDBC Source Connectors fail

    docker - kafka-avro-console-consumer 命令在 `confluentinc/cp-enterprise-kafka` 中不可用

    spring-boot - 带有ssl的spring boot kafka,发送消息时出错

    python-3.x - 如何在多个代理或 faust 计时器之间共享 faust 表?

    apache-kafka - kafka 如何 ack 批量 AsyncProducer

    java - 为什么kafka 0.10控制台生产者无法向kafka 0.9发送消息?