【从零开始学架构-李运华】05|复杂度来源:高可用
高可用的定义
系统无中断地执行其功能的能力,代表系统的可用性成都,是进行系统设计时的准则之一。
虽然方案五花八门但本质就是“冗余”!
与高性能的区别
高性能增加机器在于扩展处理性能,高可用在于增加冗余单元防止中断。
计算高可用
计算指的是业务逻辑处理能力。
a.增加任务分配器
b.任务分配器和业务服务器的链接和交互管理:建立连接、检测、中断后如何处理等。
c.增加分配算法,常见的有:主备(冷备、热备、温备)、主主等。
也可以是1主3备、2主2备、3主1备、4主0备。ZK是1主多备、Memcached是4主0备。
存储高可用
数据 + 逻辑 = 业务
由于延迟导致的数据不一致,即使逻辑一致业务变现也会不一致。
所以此难点在于如何减少或规避数据不一致对业务的影响。
分布式有著名的CAP定理,存储高可用不能同时满足“一致性、可用性、分区容错性”,所以需要取舍。
高可用状态决策
1.独裁式
决策者1,上报者n。
2.协商式
常见主备
3.民主式
多数取胜->脑裂->投票节点超过总数一半