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

前言

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

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

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

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

Santiment:持有10到10,000 BTC的钱包持有1300万枚比特币,占流通量的67%:金色财经报道,链上数据公司Santiment表示,本月比特币价格有可能进一步上涨,山寨币也可能跟进。之所以能够实现这一点,是因为主要的加密货币持有者需要继续购买旗舰数字货币BTC。过去两周,随着富达牵头的比特币ETF重新发行的消息传出,加密货币鲸鱼和巨鲸已经积累了很多比特币。

Santiment表示,在过去 7 周内,他们总共购买了154,500枚BTC。 现在,持有 10 到 10,000 BTC 的钱包持有 1300 万枚比特币,占流通量的 67%。比特币的可开采量只有 2100 万枚,而目前已经开采了超过 1900 万枚。[2023/7/1 22:12:18]

计算高可用

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

Fireblocks CEO:比特币价格上涨来自零售而非机构:金色财经报道,机构托管平台Fireblocks首席执行官兼联合创始人Michael Shaulov表示,现货比特币ETF将向比特币输送新的机构资金,最终推动比特币价格大幅上涨的将是散户投资者。当机构以安静的方式参与市场时,他们几乎能够在不影响价格的情况下做到这一点,2020 年中期是机构资金大量流入的又一个时期,但直到今年晚些时候散户投资者对加密资产疯狂时,价格才真正升值。[2023/6/28 22:04:51]

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

dYdX与法币网关Banxa达成合作,允许用户直接购买USDC:金色财经报道,dYdX宣布与法币网关Banxa达成合作,允许用户直接在平台上直接购买USDC,支付方式包括信用卡、银行转账等。[2022/10/18 17:29:43]

主备计算高可用

主从计算高可用

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

花旗集团全球市场主管:加密货币和央行数字货币终将具有重要意义:6月15日消息,花旗集团(C.N)全球市场主管Andy Morton表示,加密货币和央行数字货币终将具有重要意义。(金十)[2022/6/15 4:29:44]

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

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

无聊猿BAYC总交易额已突破20亿美元:5月11日消息,据 NFTGo.io 最新数据显示,无聊猿Bored Ape Yacht Club(BAYC)总交易额已突破 20 亿美元,截止目前为 20.1 亿美元,市值达到 11.6 亿美元。据 NFTGo.io 数据显示,BAYC 并未受到近日加密市场走低影响,过去 24 小时交易额超过 1000 万美元,地板价已升至 102.5 ETH,24 小时涨幅为 15.54%。[2022/5/11 3:07:35]

高可用计算集群

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

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

存储高可用

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

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

主从高可用存储模式

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

集群高可用存储模式

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

总结

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

马耀耀

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

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

银河链

Polygon一文解析区块链如何改变商业生活

协作是商业生活的核心。为了建立一个成功的产品,经理们需要与工程师、设计师、客户和供应商紧密合作。想想在过去几个月里,你在视频会议上花了多少时间与同事见面,与客户交谈,或与供应商谈判。有效的管理者必须在他们工作的几乎每个方面进行协作.

[0:15ms0-2:70ms