dot 快速的未来即将在您所在的城市举办活动。

加入我们在 Redis 发布会

Redis 企业版是一个自管理的实时数据平台,它可以释放 Redis 在规模化方面的全部潜力,确保五九 (5-9s) 高可用性。

Redis 企业版的高可用性建立在复制的基础上,但自动故障转移、备份和恢复也会影响满足应用程序高可用性服务级别协议的能力。

复制是在多个 Redis 企业版服务器上存储数据副本的过程。Redis 企业版复制可以确保您的数据安全,并允许您的应用程序在没有停机的情况下持续运行,从而保持高可用性,即使您的一个或多个服务器出现故障。

经济高效的复制

与大多数 NoSQL 数据库部署一样,开源 Redis 使用三个副本以确保高可用性。从高层次上看,第一个副本通常用于存储您的数据集,第二个用于故障转移目的,第三个用作网络分割事件的仲裁者。由于 DRAM 价格昂贵,维护三个副本可能非常昂贵。Redis 企业版允许您仅用两个副本构建完整的 HA 系统。您的仲裁者通过在集群中使用奇数个节点在节点级别确定。以下示例比较了在 Amazon Web Services 上运行带有三个副本的开源 Redis 数据集的 90GB 高可用性体系结构的 基础设施成本与使用两个副本和一个仲裁节点的 Redis 企业版集群的成本。

https://www.youtube.com/embed/qIZuW_8bPtQ

在 AWS 上运行 90GB 数据集 HA 配置的成本(保留实例)

纯内存复制

Redis 企业版复制基于无盘复制(纯内存复制),在主服务器和副本上都提供完整的冗余,如下图所示。

在 2x r3.2xlarge 实例上进行的 52GB DRAM(19GB RDB)的内部复制基准测试显示以下结果

此外,Redis 企业版使用 PSYNC2 用于其核心操作,因此在计划的故障转移或分片迁移操作之后,活动复制链接将保持连接。

自动故障转移

Redis 企业版集群提供容错性和弹性。如果主服务器或节点出现故障,Redis 企业版的自我修复过程会自动检测硬件故障,选举一个副本作为替换,并提升该副本成为新的主服务器。Redis 企业版还会自动切换所有客户端连接。整个故障转移过程在几秒钟内完成,无需人工干预。Redis 企业版集群使用两个看门狗进程来检测故障。

  1. 节点看门狗:监控在给定节点上运行的所有进程。例如,如果特定分片无响应,节点看门狗会触发分片故障转移事件。
  2. 集群看门狗:负责集群节点的运行状况,并使用 八卦协议 来管理集群中节点的成员资格。例如,集群看门狗会触发节点故障事件或检测网络分割事件。

这些看门狗进程是分布式集群管理器实体的一部分,驻留在集群的每个节点上。故障检测需要由在集群内部运行的实体管理,以避免以下图左侧所示的情况。在此示例中,看门狗实体位于网络分割的错误一侧,无法触发故障转移过程。

一旦检测到故障事件,Redis 企业版集群就会自动并透明地运行一组内部分布式进程,以将相关分片和端点(如果需要)故障转移到健康的集群节点。它们还会在必要时通过不同的代理重新路由用户流量。

Redis 企业版集群具有针对嘈杂(公共云)和安静(虚拟专用云,本地)环境的开箱即用的 HA 配置文件。我们发现过早地触发故障转移可能会导致稳定性问题。另一方面,在安静的网络环境中,Redis 企业版集群可以轻松调整以支持所有故障场景中持续的个位数(<10 秒)故障转移时间。

多可用区/机架部署

使用 Redis 企业版,您可以从 AWS、Google Cloud 和 Microsoft Azure 的约 90 个区域中进行选择。这可以确保您的应用程序靠近您的用户,从而提供亚毫秒级响应时间。

Redis 企业版还旨在通过多区域、多区域和多云 Redis 企业版集群提供逐步升级的地理弹性。Redis 企业版支持多可用区/机架集群配置。在此模式下,集群节点会标记其部署的区域/机架,Redis 企业版确保相同分片的 主服务器 和副本 Redis 进程永远不会托管在位于同一可用区/机架的节点上。在多可用区/机架环境中运行 Redis 企业版需要满足以下条件。

  1. 三个或更多个集群节点,总数为奇数。
  2. 三个或更多个可用区/机架,总数为奇数。
  3. 给定可用区/机架中的节点数应始终是少数,即小于所有其他可用区/机架中的节点数。这可以确保如果发生可用区/机架故障,集群中的大多数节点将保持运行。
  4. 可用区/机架之间的网络延迟应小于 10 毫秒,以确保集群故障检测机制正常运行。在大多数情况下,决策是在发生实际故障事件时做出的,受网络故障的影响较小。对于可用区/机架之间延迟超过 10 毫秒的情况,应考虑 主动-被动主动-主动 部署。

此处显示了 Redis 企业版在云中多可用区配置的一个示例。

Highly Available Multi AZ Diagram

如您所见,此示例满足了上面讨论的所有条件。

  1. 节点数为奇数 (7)。
  2. 可用区数为奇数 (3)。
  3. 每个区域中的节点数是少数。
  4. 在所有主要公共云中,同一区域内区域之间的网络延迟始终小于 10 毫秒。

Redis 企业版通过多云集群实现地理弹性

云提供商的中断的严重程度各不相同,从暂时的容量限制到可能破坏应用程序部署的完全中断。通过将数据分布在多个云中,组织可以提高数据库和应用程序的弹性,并防止数据丢失。Redis 企业版多云集群允许您将 Redis 企业版集群分布在不同公共云提供商的多个区域中。使用多云集群,您可以利用 AWS、Google Cloud 和 Azure 的独特工具和服务,而无需管理跨云数据复制和迁移的运营复杂性。您可以通过低延迟访问更多云区域来扩展您的范围,并满足区域数据主权要求,而不会牺牲弹性。Redis 企业版会自动将您的数据分布在多个云中,以提高容错能力,从而确保应用程序的高可用性。

除了数据库弹性之外,您可能还需要一个计划来最大程度地提高多云环境中应用程序的弹性和容错能力。应用程序应分布在多个云中,以便在必要时进行故障转移,以满足高可用性系统要求。

想了解更多吗?

观看我们最近关于高可用性的技术讲座。

tech-talk-high-availability-re-card

下一部分 ► 持久化 Redis