dot Redis 8 已发布——且它是开源的

了解更多

高可用架构揭秘

什么是高可用架构?

高可用架构是指由多个不同组件、模块或服务协同工作,无论高峰负载如何,都能保持最佳性能。

High Availability Architecture Demystified

从最纯粹的意义上讲,这个系统允许企业在给定时间内不间断地持续运行。许多企业甚至承受不起一分钟的停机。考虑到数据是许多企业的命脉,即使短暂的停机也可能带来难以置信的高昂成本。 

在某些现实场景中,生命可能取决于为高可用性而构建的数据库。当患者到达急诊室时,医护人员需要即时访问其健康记录,以了解最佳治疗方案。任何访问此信息的延迟都可能产生毁灭性的影响。 

注意:高可用性通常以服务对用户可用的时间百分比来衡量。根据微软网络开发者词汇表,要被视为“高可用”的服务器,需要达到 99.999% 的网络正常运行时间。

什么是高可用集群?

高可用集群是一组主机,它们合并为一个单一系统以防止停机。如果高可用集群中的一台服务器发生故障,关键任务应用程序会在故障检测到后立即转移到另一台服务器。  

没有系统能免受故障影响,高可用集群确保无论发生何种不可避免的故障,都能维持最佳性能水平。因此,它们常用于最关键任务的应用程序、网站和交易处理系统。

高可用集群如何工作?

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

高可用集群将利用多个已集成的系统,因此如果故障导致一个系统失效,可以有效地利用另一个系统来维护正在使用的服务或应用程序的连续性。 

高可用负载均衡集群在防止系统故障中起着至关重要的作用。设置负载均衡器本质上是将流量分配到为同一网站或应用程序用户提供服务的不同 Web 节点。这减轻了单个服务器的压力,使每个集群都能更优化地工作,同时只将流量发送到健康的服务器。

高可用集群概念

主备(Active-Passive)集群

主备(Active/Passive)集群由至少两个节点组成。顾名思义,并非所有节点都处于活动状态。如果一个节点是活动的,则第二个是只读的备用节点。备用服务器充当备份,并在主服务器无法工作时启用。 

双主(Active-Active)集群

https://www.youtube.com/embed/mCOX-2ez-m4

这种类型的集群通常使用至少两个节点,同时执行相同的服务。在双主(Active-Active)集群中,两个节点都作为主节点,这意味着两者都可以接受读写操作。如果一个节点发生故障,用户将自动连接到另一个节点,以确保服务连续性。一旦第一个节点被替换,用户流量将被分配回两个原始节点之间。 

双主(Active/Active)集群的主要优势在于它允许您实现节点间负载均衡。如果检测到服务器故障,负载均衡器会将用户请求传输到随时可用的服务器,然后分析节点网络活动。负载均衡器随后会将流量推送到能够处理该流量的节点,从而实现更高水平的容错能力

这种策略遵循循环过程,类似于轮询模型,用户随机分散到可用节点,或者相反,可以遵循基于百分比的权重方案,优先处理一个节点而非另一个节点。

无共享(Shared-nothing)集群 vs. 共享磁盘(Shared-disk)集群

https://www.youtube.com/embed/3WOfXRjYnGA

分布式计算中遵循的一般规则是不惜一切代价避免单点故障。这要求资源能够被主动复制或可替换,以便在整个服务中断时,不会因单一因素而中断。 

想象一下,如果您有五十个由一个数据库驱动的运行节点。如果一个节点发生故障,无论运行节点的数量如何,都不会影响其他节点的持久状态。 

但是如果数据库发生故障,整个集群都会宕机,这使得数据库成为单点故障。这被称为共享磁盘(shared disk)集群。 

另一方面,如果每个节点都维护自己的数据库,则一个节点的故障不会影响整个集群。这被称为无共享(shared nothing)集群。 

注意:如果您想了解更多关于高可用性集群技术的信息,请务必观看这个网络研讨会。George Carbonnel 在软件行业拥有超过 20 年的经验,他将为您详细解读 Redis Enterprise 的集群技术如何提供高性能和高可用性。

高可用架构的要求

您需要满足许多不同的要求才能最大化持久性和高可用性。这些要求包括:

负载均衡

负载均衡对于任何高可用架构都至关重要。其主要功能是将流量分配到后端服务器,以更有效地传输数据并防止服务器过载。任何负载均衡系统的一个前提是确定在发生节点故障时应执行何种故障转移过程。

数据可伸缩性

所有高可用架构都必须考虑数据库或磁盘存储单元的扩展能力。有两种解决方案可供选择来实现可伸缩性: 

  • 利用架构的主数据库并使用复制或分区使其具有高可用性;或者
  • 确保单个应用程序实例能够维护其自身的数据存储

地理多样性

我们生活在一个快节奏的数字世界,现在必须能够在全球范围内分发高可用集群。这样做将确保如果自然灾害袭击单个地点,其影响不会阻碍他们提供服务的能力。 

备份与恢复(灾难恢复)

尽管具有一致性,高可用架构始终容易受到某种可能中断服务的故障影响。因此,如果服务中断,企业必须具备可用的恢复策略,以便尽快使整个系统恢复运行。 

这通常被称为灾难恢复——一套旨在在发生破坏性事件时使服务恢复完全功能的策略和程序。

如何衡量高可用性

高可用性通常以服务对用户可用的时间百分比来衡量。这是通过将总正常运行时间除以系统周期,然后乘以 100 得到百分比。根据微软网络开发者词汇表,要被视为“高可用”的服务器,需要达到 99.999% 的网络正常运行时间。 

通常,可用性百分比被称为数字中的“几个九”。所以四个九就是 99.99%。 

注意:99.99% 的可用性被认为是行业标准。

高可用性最佳实践

https://www.youtube.com/embed/tRk-LqyGfno

您可以采取许多步骤来最大化高可用性,从检查组件数量到更换故障服务器。以下是实现高可用性的一些实践方法。

实现地理冗余

地理冗余是抵御可能导致服务故障的自然灾害爆发的关键防线。这种实践涉及在不同地理位置部署多台服务器,从而分散风险,并在自然灾害袭击某个区域时,允许架构回退到另一台服务器。 

注意:您可以通过具备双活地理分布的数据库轻松实现这一点。

使用故障转移解决方案

高可用架构通常涉及大量松耦合的服务器,这些服务器提供故障转移能力。故障转移被视为一种备份操作模式,当主系统的功能中断时会自动启用。 

实施负载均衡器

如前所述,负载均衡器会将传入流量分散到不同的服务器,以减轻任何停机的风险。请务必配置您的负载均衡器,使其使用适合您需求的算法,以充分优化此解决方案。

确保您的数据同步满足您的恢复点目标 (RPO)

RPO 是衡量您在不对组织造成损害的情况下可以丢失的最大数据量的一个指标。它突显了您的业务整体的数据丢失容忍度,通常以时间单位衡量,例如 1 分钟或 1 天。

将 RPO 设置为小于或等于 60 秒将有助于您维持最大可用性。这样做将确保如果发生主源故障,您不会丢失超过 60 秒的数据。 

Redis 在高可用架构中的作用

Redis Enterprise 是任何寻求实现最大可用性的大型公司的强大解决方案。它是一个实时数据平台,可确保五个九的可用性,提供卓越的自动化数据库弹性,同时降低硬件故障和云服务中断的风险。 

Redis Enterprise 满足最关键任务企业应用程序的高可用性需求。它提供行业领先的功能,通过以下方式提供99.999% 的可用性双活地理分布、自动故障转移、智能集群、无共享架构和全球分发。

想了解更多关于如何实现高可用性的信息吗?