《从0开始学架构》——高可用:异地多活和接口级故障

本文介绍了异地多活架构,包括应用场景、架构模式和设计步骤,强调了跨城异地多活的复杂度和成本。此外,还探讨了接口级故障的应对策略,如降级、熔断、限流和排队,以确保在故障情况下核心业务和大部分用户的正常运行。
摘要由CSDN通过智能技术生成

本系列是极客时间《从0开始学架构》的读书笔记。

一、异地多活

对应《28 | 业务高可用的保障:异地多活架构》《29 | 异地多活设计4大技巧》《30 | 异地多活设计4步走》

在上一篇提到过,如果部分节点的故障是地理级别的话,最好做数据分区备份架构。但是,由于备份系统正常情况下是不对外提供服务的,所以把备份数据恢复到正常情况,需要很长时间。
这个很长时间,并不是指的系统启动的时间,而是由于备份系统平时没有流量,如果直接上线可能会触发平常测不到的问题;备份系统也没有中间数据、缓存数据,如果不经过预热直接切换,大流量会直接拖垮系统;即使是再实时的系统也会有数据延迟,如果是金融类系统需要确保数据一致。许多方面的考虑,都不能保证备份系统能够实时切换上线。

如果业务需要在此种故障背景下,依然要能够不受影响或只影响几分钟,那么就需要考虑异地多活架构。

应用场景

异地,指的是地理上位于不同位置,多活指的是都能对外提供服务。一个系统符合异地多活,需要满足:正常情况下,用户无论访问哪个地点的业务系统,都能得到正确的服务;当某个地点的服务异常时,用户访问其他地方的系统,可以得到正确的服务。

这种架构的代价很高:系统的复杂度会发生本质变化,成本大幅上升。
所以,是否选择异地多活,要看业务的具体情况。一般而言,核心的、关键的业务才会去考虑。

架构模式

依据地理位置划分。

1.同城异区。
这种架构不能应对极端故障(如城市停电、地震、洪水……),但是由于处于同一个城市,可通过搭建专用网络实现和在同一个机房内几乎一样的速度。这样就减少了设计的复杂度以及相应的成本。
这种架构可以很好地应对机房故障、火灾等场景。由于此类故障场景发生概率更大,所以综合考虑,同城异区架构是应对机房级别故障的最优选择。

2.跨城异地。
选址时距离要尽量远,这样才能应对城市级别的极端故障。
由于距离非常远,量变引起质变,机房之间的传输速度急剧下降,并且传输线路的可用性难以可控(如挖掘机把光缆挖断导致支付宝故障、中美海底光缆被拖船扯断导致一系列故障)。这些由于距离导致的网络延迟,一定会造成数据的不一致。
如果数据要求强一致性,如银行存款、支付宝

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值