应用最广泛的架构风格
错误的认知:
架构无好坏,只能是根据场景来选择。
典型的思维误区:
单体架构是落后的系统架构风格,最终会被微服务所替代。
观念的转变:
不追求尽量不出错,而是应当正视出错是必然的,其实,这才是导致微服务开始逐步代替单体架构根本的驱动力。
1.大型单体系统
也被称为巨石系统,把单体看作成是一种架构,确切的说是在微服务流行之后,才被追加的。
对于一个小型的系统来说,使用单体架构,易于开发,易于测试,易于部署,而且是进程内方法调用。
*** 所以要想讨论单体系统的缺陷,必须要有一个前提:软件的性能需求超过了单机 所能处理的最大能力 ***
题外话:当前市面上所有主流的IDE,也都是对单体架构支持最友好。
2.可拆分的单体系统
- 分层架构(纵向角度)
- 水平扩展(横向角度)多副本机制
3.非独立的单体
在拆分 方面,单体系统真正的缺陷,实际上并不在于如何 拆分 ,而是在于拆分 之后它会存在隔离与自治能力上的欠缺。
以微服务去代替单体系统的原因:
- 无法做故障隔离
- 无法做到动态可维护
- 无法做到技术异构
- 不兼容phoenix特性(不死–>能自治–>可靠)