CAP:「高可用架构设计」的入门秘籍

前言

伴随着互联网的诞生和发展,高可用架构出现并不断完善。互联网早期许多系统只依赖于一台计算机来处理请求,所以经常出现「服务不可用」的情况。为了保持系统正常运行,出现将负载分配给能够满足需求的多台计算机的高可用架构。

工程师们反复使用并持续优化这些解决方案,以适应自己的需求。本文主要介绍高可用架构的演进及常用高可用架构优缺点及适用场景。

高可用性用来描述计算机系统或其组件在一段时间内连续运行的能力。政府、银行和其他合规监管行业通常需要数据计算和存储的高可用性,系统必须能够自动从服务器或组件故障中恢复。为了实现系统的可靠性,三个系统设计的原则可以用来实现高可用性:消除单点故障、可靠的故障切换、故障检测能力。在分布式系统中可以通过将多个冗余节点连接为一个集群来实现这一点,其中每个节点都能够进行故障检测和恢复。

Web3信息分发协议RSS3宣布已新增支持Base网络:8月10日消息,据官方消息,Web3信息分发协议RSS3宣布其已新增支持由Coinbase孵化的L2网络Base,Base主网已于今日早些时候宣布正式向公众开放。[2023/8/10 16:17:24]

高可用架构一般分为计算高可用和存储高可用,主要手段是数据和服务的冗余备份及失效转移。

计算高可用

计算高可用主要分为主备模式、主从模式、集群模式。三种模式都是通过计算模块冗余方式来规避单点故障的风险,不同的是三种方案故障检测及恢复方式不同,系统可用性也不一样。

主备计算高可用主备高可用架构任意时刻只有主机对外提供运算任务,备用机器根据运行状态分为冷备和温备。当系统出现故障时需要人为进行服务切换及故障恢复。此种架构实现方式最简单,主备之间不需要交互,不会为系统引入额外复杂度。但是此种方式主备服务无法无缝切换,可用性无法得到保证。

新加坡家办负责人:Web3项目最重要的是用户友好交互界面:金色财经报道,5月27日,在由AI算法货币平台ArrayFi主办的“Bridge?Web3 ?2023”大会上,新加坡家办Raffles Family Office负责人Dazmond Goh表示,Web3项目最重要的是用户友好的交互界面,这有助于打破Web2到Web3的界限。从Web2到Web3的新用户,最重要的是自我学习。[2023/5/27 9:46:10]

主备计算高可用

主从计算高可用

主从模式和主备模式区别是从机也要执行一些任务,任务调度器负责将任务分类并发送给主机或从机。当主机出现故障时,如果主机不能够自动恢复,则需要人工操作,将原来的从机升级为主机,增加新的机器作为从机,新的从机准备就绪后,任务分配器继续按照原有的设计策略分配任务。主从模式发挥了从机的运算性能,可以减轻主机的运算压力,但是需要加入任务调度功能,实现会复杂一些。

沙特主权基金Sanabil披露多项对Web3领域的投资:金色财经报道,沙特主权财富工具公共投资基金的风险投资部门 Sanabil 列出了对 Andreessen Horowitz (a16z)、Coatue Management、KKR 和 Valar Ventures 等公司的投资,但尚未披露对每只基金的具体投资细节。

据悉,Sanabil 列出的区块链相关基金包括:a16z、Polychain Capital、Griffin Gaming Partners、500 Startups、9Yards、B Capital、Collaborative Fund、Costanoa、Craft Ventures、Dragoneer、Greenoaks Capital、Human Capital、ICONIQ Capital、Insight Partners、KKR、Legend Capital 、Race Capital、Soma Capital、TCV、Techstars、Third Point Venture、Uncorrelated、Valar Ventures、Valor Equity Partners 和 Village Global。[2023/4/4 13:44:32]

Web3财务管理平台Headquarters完成500万美元融资:9月21日消息,Web3财务管理平台Headquarters宣布完成500万美元新一轮融资,Crypto.com Capital、Forge Ventures和MassMutual Ventures领投,Saison Capital、500 Startups和Longhash Ventures,以及Nansen首席执行官Alex Svanevik、Race Capital的Chris McCann和Etherscan创始人Matthew Tan等参投。

据悉,Headquarters旨在帮助企业更好地管理托管和非托管钱包中的营运资金,通过其财务运营工具减少Web3记账中的人为错误。(The Block)[2022/9/21 7:10:15]

主从计算高可用集群计算高可用

迪士尼CEO:过去一年一直在探索如何利用Web3技术:9月14日消息,在迪士尼两年一度的 D23 Expo 大会上,该公司首席执行官鲍勃·查佩克称迪士尼正在继续探索和制定虚拟世界计划,而且在过去一年时间里一直在悄悄探索如何利用 Web3 技术。鲍勃·查佩克表示,迪士尼希望使用来自物理世界和数字世界的数据来推动其元宇宙战略,来自主题公园访问数据和消费者流媒体习惯数据将使迪士尼元宇宙战略中最关注的两大领域。(nftevening)[2022/9/14 13:30:06]

集群模式是将服务器组合在一起以作为一个统一的系统对外提供服务,也称为故障转移集群,它们共享相同的存储但使用不同的网络。对于有负载均衡功能的集群每个节点具有相同的功能,因为它们可以运行它们所支持的主系统的相同工作负载。如果集群中的服务器出现故障,另一台服务器或节点可以立即接管,以确保集群支持的服务保持正常运行。使用高可用性集群有助于确保关键系统没有单点故障,并减少或消除停机时间。

高可用计算集群

一个高可用集群系统必须有一个精心设计的、预先设计好的负载均衡机制,以在集群节点之间分配运算任务。负载均衡器对运算节点进行持续的健康检查,以确保它们可以处理请求。负载均衡机制必须在节点故障的情况下指定确切的故障转移过程。

集群模式解决了故障检测、故障转移及故障修复的问题,能够最大化系统的可用性,但也引入了系统复杂度。在高可用性集群中必须防止的关键情况之一是“脑裂”。当所有私有内部连接同时被切断,但集群节点仍在运行时,就会发生“脑裂”。在这种情况下,集群的所有节点可能会错误地认为所有其他节点都已关闭,并尝试启动其他节点已经在运行的服务。对于同一服务的多个版本,所有这些版本都可能暴露给用户,并可能导致数据损坏,并且向一个HA集群添加过多的虚拟机和主机会导致负载平衡变得困难。

存储高可用

存储高可用通过数据复制,来实现存储冗余,进而实现高可用。存储高可用是系统设计的关键点及难点,需要保证系统的数据一致、可用、分区容忍。存储高可用常用的架构有主从模式和集群模式。

主从模式中,主机负责读写并定期复制数据给从机,从机仅承担读操作,可以减轻主节点的访问压力。一旦主机宕机,可以通过人工手段,将其中一个从节点切换为主节点。主从模式故障时需要人工干预,并且客户端需要感知主从关系,并将不同的操作发给不同的机器进行处理。在此模式下每个机器上存储的都是全量数据,但是单机的数据存储量总是有上限的,所以存在存储容量的限制,并且不容易扩容。和主从运算高可用类似,当主机出现故障时,如果主机不能够自动恢复,则需要人工操作,可用性无法得到保证。

主从高可用存储模式

集群模式由多个节点组成存储集群,每个节点负责存储部分数据,Client存储数据时,数据根据分片算法被路由到不同的存储节点。集群节点间运行共识算法,当有节点宕机时,共识算法会选举新的主节点并来调度集群的数据存储。基于共识复制的系统,写入被提议到一个节点,然后被复制到一定数量的其他节点。一旦大多数节点确认写入,就可以提交。它可以保证一致性,也可以提供高可用性。从节点可以用来读取数据,从而减少主节点的访问压力。

集群高可用存储模式

集群模式通常添加某种路由技术,将客户端定向到正确的站点来处理他们的请求。分片路由器按特定算法拆分数据,常用算法有取模、检索表、一致性哈希等,并将这些段分布在多个站点之间,每个节点可以视为一个独立的子集,针对子集,仍然需要保证高可用。分片可以在多台机器之间分配工作负载,提高吞吐量,并通过容忍更多的部分故障和消除单点故障来创造更大的弹性。

总结

在过去的几十年里,系统可用性架构取得了长足的进步,从主备模式、主从模式到高可用集群,架构师不断在CAP原则的基础上寻求适合自己应用场景解决方案。主从模式主要应用在需要快速写入的应用场景,集群模式适用于需要一致性的应用场景。现在很多系统服务都是在全球范围内部署,服务永远都不会停止,我们还在研究更好的可用性和更大规模的架构。

马耀耀

趣链科技数据网格实验室??BitXMesh后端开发工程师

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-3:81ms