dot 精彩活动即将来到您所在的城市。

加入 Redis Released

破解高可用架构

什么是高可用架构?

高可用架构是指在一定数量的不同组件(模块或服务)协同工作以维持最优性能(与高峰时段负载无关),从而实现高可用。

High Availability Architecture Demystified

从最纯粹的意义上说,这种系统允许企业在特定时间段内连续工作,不会发生故障。许多企业甚至连一分钟的停机时间都赔不起。考虑到数据是许多企业的命脉,即使只是一段时间的停机代价也极其昂贵。

在某些现实场景中,生命可能有赖于为高可用构建的数据库。患者到达急诊室时,医疗专业人士需要即时访问其病历,以了解最佳的治疗决策。访问此信息时发生的任何延迟都可能产生毁灭性影响。

注意:高可用通常以服务可以向用户提供的时间百分比来衡量。根据 Microsoft Network 开发人员词汇表,要使服务器被视为“高可用”,其网络正常运行时间需要达到 99.999%。

什么是高可用群集?

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

没有系统能做到不发生故障,并且高可用群集确保无论不可避免的故障发生与否,系统都能够维持最优性能。因此,这些群集通常用于最重要的应用程序、网站和事务处理系统。

高可用群集是如何工作的?

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

高可用群集将利用已经集成的多个系统,因此如果故障导致一个系统发生故障,另一个系统可以高效率地利用起来,从而维持正在使用的服务或应用程序的连续性。

高可用负载均衡群集在预防系统故障中发挥着至关重要的作用。部署负载均衡器实质上将流量分布在为相同网站或应用程序用户提供服务的各个 Web 节点之间。这减轻了任何一个服务器上的压力,让各个群集能够更优地工作,同时只允许将流量发送到运行正常的服务器。

高可用群集概念

主动-被动群集

主动/被动群集至少由两个节点组成。顾名思义,并非所有节点都将处于主动状态。如果一个节点处于主动状态,第二个节点将处于只读备用状态。被动服务器充当备份,在主动服务器无法工作的情况下将予以利用。

主动-主动群集

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

这种类型的集群通常至少使用两个同时执行相同服务的节点。在活动-活动集群中,两个节点都充当主节点,这意味着它们都可以接收读取或写入。如果一个节点发生故障,用户将自动连接到另一个节点以确保服务的连续性。一旦第一个节点被替换,用户将被拆分为两个原始节点。 

活动/活动集群最重要的优点是,它允许你实现节点网络平衡。如果检测到服务器故障实例,负载平衡器会将用户请求传输到就绪的服务器,然后分析节点网络活动。然后,负载平衡器会将流量推送到能够处理该流量的节点,从而允许更高的容错级别

此策略遵循一个循环的过程,类似于循环模型,其中用户随机分布在可用节点上,或者相反,可以遵循权重方案,即根据百分比将一个节点优先于另一个节点。

不共享任何内容与共享磁盘集群

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

分布式计算遵循的一般规则是不惜一切代价避免单点故障。这就要求资源被积极复制或替换,并且在整个服务中断的情况下不中断任何单一因素。 

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

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

另一方面,如果每个节点都维护自己的数据库,节点故障不会影响整个集群。这称为不共享任何内容集群。 

注意: 如果你想更多地了解高可用性集群技术,请务必观看此网络研讨会。拥有软件行业 20 多年经验的 George Carbonnel 将为你讲解关于集群技术如何与 Redis Enterprise 结合使用以实现高性能和高可用性所需了解的一切。

高可用性架构的要求

你需要最大化持久性和高可用性的要求有很多。这些包括

负载平衡

负载均衡对于高可用架构至关重要。其主要功能是将流量分配给后端服务器,以提高数据传输的效率并防止服务器过载。任何负载均衡系统的一个先决条件是确定在节点故障时应执行哪些故障转移流程。

数据可扩展性

所有高可用架构都必须考虑扩展数据库或磁盘存储单元的能力。您可以在两种解决方案中进行选择,以实现可扩展性: 

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

地理多样性

我们生活在一个快速发展的数字世界中,现在必须能够在全球范围内分发高可用集群。这样可以确保,如果自然灾害袭击单个位置,所产生的影响不会妨碍其提供服务的能力。

备份和恢复(灾难恢复)

对于其所有一致性,高可用架构总是容易发生某种会中断服务故障。因此,如果服务中断,企业必须制定一种恢复策略,以便尽快再次运行整个系统。

这通常称为灾难恢复 - 一组在破坏性事件发生时将服务恢复到完全功能的策略和程序。

如何衡量高可用性

高可用性通常以用户可使用服务的时间百分比来衡量。这是通过将总正常运行时间除以系统周期来完成的,然后乘以 100 以获得一个百分比。根据 Microsoft 网络开发人员术语表,对于服务器被视为“高可用”,它需要实现 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% 的可用性

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