第一章 架构基础
1.架构设计的复杂度来源
1.1 高性能
1.1.1单机复杂度
1.1.2集群复杂度
集群复杂度包括任务分配的复杂度,任务分解复杂度。任务分配器比如硬件网络设备,或负载均衡的软件设备。任务分解即微服务的拆分。
思考:1、既然将一个大系统分解为多个子系统能够提升性能,是不是拆分得越细越好呢?答案是否定的,最主要的原因是如果系统拆分得太细,为了完成某个业务,系统间的调用会呈指数级上升,而系统间的调用通道目前都是通过网络传输的方式,性能远比系统内的函数调用要低得多。
1.2 高可用
系统的高可用方案五花八门,但万变不离其宗,本质上都是通过“冗余”来实现高可用。
高可用又可分为计算高可用和存储高可用,存储高可用的难点不在于如何备份数据,而在于如何减少或规避数据不一致对业务造成的影响。
1.3可扩展性
设计具备良好可扩展性的系统,有两个基本条件:正确预测变化、完美封装变化。
第十章 业务高可用
1、异地多活
判断一个系统是否符合异地多活,需要满足如下两个标准:
1、正常情况下,用户无论访问哪一个地点的业务系统,都能够得到正确的业务服务。
2、某地系统异常的情况下,用户访问到其他地方正常的业务系统,也能够得到正确的业务服务。