View a markdown version of this page

主动-主动复制 - Amazon Managed Streaming for Apache Kafka

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

主动-主动复制

在主动-主动设置中,两个 MSK 集群都积极提供读取和写入服务。主动-主动集群拓扑提供了几乎为零的恢复时间,并且您的流媒体应用程序能够在多个 AWS 区域同时运行。

使用带前缀的主题名称复制(推荐)

对于主动-主动设置,我们建议使用前缀主题名称复制(在控制台中为主题名称添加前缀)。这需要重新配置您的消费者以阅读复制的主题,但可以避免额外的数据处理费用。

  1. 创建 MSK 复制器,将 MSK 集群 A 作为源,将 MSK 集群 B 作为目标。

  2. 成功创建上述 MSK 复制器后,创建一个以集群 B 为源、集群 A 为目标的复制器。

  3. 创建两组生产者,每组生产者同时将数据写入集群中的本地主题(例如,“主题”),与生产者位于同一区域。

  4. 创建两组使用者,每组使用通配符订阅(例如.*topic)从与使用者位于同一 AWS 区域的 MSK 集群中读取数据。这样,您的消费者将自动读取从本地主题(例如topic)在本地生成的数据,以及从主题中带有前缀的其他区域复制的数据<sourceKafkaClusterAlias>.topic。这两组使用者应具有不同的使用者组, IDs 这样当 MSK Replicator 将它们复制到另一个集群时,消费者组偏移量就不会被覆盖。

使用相同的主题名称复制

如果要避免重新配置客户端,则可以使用相同的主题名称复制来创建 MSK Replicators(在控制台中保持相同的主题名称)。但是,您将为每个复制器支付额外的数据处理和数据传输费用。这是因为每个复制器需要处理两倍于平时的数据量,一次用于复制,另一次用于防止无限循环。您可以使用 ReplicatorBytesInPerSec 指标跟踪每个复制器处理的总数据量。

注意

如果您对主动-主动拓扑使用相同的主题名称复制,请在删除主题后至少等待 30 秒,然后再重新创建同名主题。此等待期有助于防止重复的消息被复制回源集群。您的使用器必须能够在不影响下游的情况下重新处理重复的消息。