缓解故障 - ElastiCache 适用于 Redis 的 Amazon

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

缓解故障

在规划 Amazon ElastiCache 实施时,您应做好计划,尽量减少故障对应用程序和数据的影响。本部分中的主题涵盖了可用来防止应用程序和数据出现故障的方法。

缓解运行 Redis 时发生的故障

运行 Redis 引擎时,您有以下选项来最大程度地减小节点故障或可用区故障的影响。

缓解节点故障

无服务器缓存使用多可用区架构,自动缓解节点故障,因此节点故障对您的应用程序是透明的。自行设计集群必须得到妥善配置,以缓解单个节点出现故障的情况。

要缓解自行设计集群中 Redis 节点故障的影响,您有以下选择:

缓解故障:Redis 复制组

Redis 复制组包含一个应用程序可从中读取和写入的主节点和 1 至 5 个只读副本节点。在向主节点写入数据时,也会在只读副本节点上异步更新此数据。

在只读副本发生故障的情况下
  1. ElastiCache 检测失败的只读副本。

  2. ElastiCache 使失败的节点下线。

  3. ElastiCache 在同一 AZ 中启动并配置替换节点。

  4. 新节点与主节点同步。

在此期间,应用程序可使用其他节点继续读取和写入。

Redis 多可用区

您可以在 Redis 复制组上启用多可用区。无论是否启用多可用区,都将自动检测并替换发生故障的主节点。执行此操作的方式因是否启用多可用区而异。

启用多可用区时
  1. ElastiCache 检测主节点故障。

  2. ElastiCache 将复制延迟最小的只读副本节点提升到主节点。

  3. 其他副本将与新的主节点同步。

  4. ElastiCache 在出现故障的主节点的 AZ 中启动只读副本。

  5. 新节点将与新提升的主节点同步。

故障转移到副本节点的速度通常比创建并预置新主节点的速度要快。这意味着,与未启用多可用区的情况相比,您的应用程序可更快地恢复对主节点的写入。

有关更多信息,请参阅利用多可用区最大限度减少 ElastiCache for Redis 中的停机时间

禁用多可用区时
  1. ElastiCache 检测主故障。

  2. ElastiCache 使主服务器脱机。

  3. ElastiCache 创建并置备一个新的主节点来替换出现故障的主节点。

  4. ElastiCache 将新的主副本与其中一个现有副本同步。

  5. 同步完成时,新节点将发挥集群主节点的功能。

在此过程的步骤 1 到 4 中,您的应用程序无法写入主节点。不过,您的应用程序会继续从副本节点进行读取。

要提供额外保护,建议您启动在不同可用区 (AZ) 的复制组中的节点。如果这样做,可用区故障将仅影响该可用区中的节点,而不会影响其他节点。

有关更多信息,请参阅使用复制组时的高可用性

缓解可用区故障

无服务器缓存使用复制的多可用区架构,自动缓解可用区故障,因此可用区故障对您的应用程序是透明的。

要缓解自行设计集群中可用区故障的影响,对于每个分片,请将节点置于尽可能多的可用区中。

无论您的一个分片有多少个节点,如果所有这些节点都位于相同的可用区内,则该可用区的灾难性故障会导致您丢失分片的所有数据。但是,如果您将节点置于多个可用区内,则任一可用区的故障只会导致您丢失该可用区内的节点。

只要您丢失节点,就会导致性能下降,因为现在共享读取操作的节点更少了。在替换节点之前,性能下降将继续。

有关为 Redis 节点指定可用区的信息,请参阅创建 Redis(已禁用集群模式)集群(控制台)

有关区域和可用区的更多信息,请参阅选择区域和可用区

建议

我们建议对自行设计的集群创建无服务器缓存,因为这样您无需额外配置即可自动获得更好的容错能力。但是,在创建自行设计集群时,您需要规划两种类型的故障:单个节点故障和广泛的可用区故障。最佳的故障缓解计划将解决这两种故障。

尽可能减少节点故障的影响

为了尽可能减少节点故障的影响,我们建议您的实施在每个分片中使用多个节点,并将节点分布在多个可用区上。对于无服务器缓存,此过程自动完成。

对于自行设计的集群,我们建议您在复制组上启用多可用区, ElastiCache 以便在主节点出现故障时自动故障转移到副本。

最大程度地减小可用区故障的影响

要最大程度地减小可用区故障的影响,建议您在提供的不同可用区内启动节点。跨可用区均匀分布节点将最大程度地减小极少发生的可用区故障的影响。对于无服务器缓存,此过程自动完成。

其他预防措施

如果您正在运行 Redis,除了上述预防措施之外,建议您定期对集群进行备份。备份(快照)会创建一个 .rdb 文件,在出现故障或损坏时,可使用此文件还原缓存。有关更多信息,请参阅 快照和还原