从概率统计方向来做系统稳定性
当当网
非功能性需求,但是功能要可用
但是必须要有很多非功能性,才能保证可用性
影响因素:
天灾是不可抗力;
人祸,设计缺陷,结构性的;
灵异事件(无法复现的问题)
海因法则:
越复杂的系统越难以评估。概率。容量评估模型
复杂系统=灾难高风险系统
高可用,不是什么时候都可用,而是用一系列方法,来提升其可用率,降低其风险。
小概率事件在个人不会发生,但是在一个系统中发生是非常正常的。
目标
- 降低故障出现概率
- 缩小故障范围
- 快速恢复故障
用户的习惯是什么???
高可用系统常用方法
一个飞机,常用方法。
分层解耦
面向用户是前台,级别高,尽量不可以出问题;
多数电商公司都会做很多份冗余,一个系统不会影响其他系统
首页不依赖于任何系统,是从很多地方可以获得信息,所有系统都挂了,首页依然能访问。。。
交易系统,是最核心系统,交易系统和订单系统是分开的。交易系统是生成订单,订单系统是处理订单。订单系统挂了,不过是交易信息不处理。
整个理解,都是分层解耦,用用户感知不到的方式,来处理,就算降低效率。
交易系统缓存
定时同步,导致问题是会导致延时,但是可以接受。
集中式缓存,短时间缓存都不会清理。
分区一致性
如果数据都放在一起,扩展性会有问题。
商家和用户会有延时。用户是被动的。缓存怎么分片。按照商品ID分片。热点数据。
资源隔离重点保障
数据分流保存
峰值情况保障
限流,各大电商网站的标配。
自助渠道高可用架构
分渠道资源隔离部署。
分析用户特点
短信渠道业务处理机制
采用异步队列
根据业务类型优先级进一步细分资源池
判断是否已经满了,耐心等待
重复短信会干掉
设置每个队列长度限制
听天事尽人命
佛祖保佑、永不宕机、心外无法、法外无心