对主 Amazon 区域执行故障恢复 - Amazon Managed Streaming for Apache Kafka
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

对主 Amazon 区域执行故障恢复

在主 Amazon 区域的服务事件结束后,您可以回切到该区域。MSK在故障恢复期间将数据复制回主区域时,Replicator 会自动跳过以源群集别名为前缀的主题。

如果您执行了计划外的故障切换步骤,则应该已经创建了故障恢复 Replicator,这是从主区域故障转移到辅助区域的最后一步的一部分。

如果您没有执行计划外的故障转移步骤,则在主区域的服务事件结束后,请创建一个新的 MSK Replicator,将数据从辅助区域的群集复制到主区域的MSK群集,并将 Replicator 的起始位置设置为最早。MSK这是将要写入二级区域的数据复制回主区域所必需的,这样您就可以在服务事件结束后对主区域执行失效自动恢复。如果您不将 Replicator 的起始位置从其默认值 “最” 更改为最早,则在主区域的服务事件期间生成到辅助区域集群的任何数据都不会复制回主区域的集群。

只有在从辅助区域的群集复制到主区域的群集已赶上并且中的 MessageLag 指标接近 0 之后, CloudWatch 才应启动故障恢复步骤。计划的失效自动恢复不应导致数据丢失。

  1. 关闭所有连接到辅助区域中MSK集群的生产者和使用者。

  2. 对于主动-被动拓扑,请删除正在将数据从二级区域的集群复制到主区域的复制器。对于主动-主动拓扑,您无需删除复制器。

  3. 启动生产者连接到主区域的MSK集群。

  4. 请按照以下选项卡之一的步骤操作,具体取决于应用程序的消息排序要求。

    No message ordering

    如果您的应用程序不需要消息排序,则在主 Amazon 区域中启动使用通配符运算符(例如topic)同时读取本地(例如<sourceKafkaClusterAlias>.topic)和复制主题(例如.*topic)的使用者。本地主题(例如 topic)的使用器将从失效转移前消耗的最后一个偏移恢复。如果在失效转移之前有任何未处理的数据,则现在将对其进行处理。如果是计划内失效转移,则不应有此类记录。

    Message ordering
    1. 仅为主区域上复制的主题(例如 <sourceKafkaClusterAlias>.topic)启动使用器,而不为本地主题(例如 topic)启动使用器。

    2. 等待主区域集群上所有已复制主题的使用器完成所有数据的处理,这样偏移延迟为 0,处理的记录数也为 0。然后,停止主区域集群上已复制主题的使用器。此时,失效转移后在二级区域生成的所有记录都已在主区域中使用。

    3. 在主区域的集群上启动本地主题(例如 topic)的使用器。

  5. 使用和延迟指标验证从主区域的群集到辅助区域的群集的现有 Replicator 是否处于RUNNING状态ReplicatorThroughput并按预期运行。