当业务复杂度增加、访问量逐渐增大出现高并发时,单体架构无法满足需求,可以根据业务功能对系统进行拆分,以提高访问效率。
垂直架构介绍
1.垂直架构一般是因为单体架构太过于庞大而进行的拆分,拆分后各个系统应满足独立运行互相不影响
2.也有可能时某个平台招标由不同厂商负责不同子系统的开发
3.垂直架构可以看成是多个单体架构的组合
2.2 优点:
对比单个单体架构系统,它拆分了系统的流量,可以针对高峰共功能进行拓展
优化了单体架构过于庞大时出现的难以维护的问题。
2.3 缺点:
1.在各个系统间单体架构存在的问题仍然存在并且有新的问题产生
2.会有功能的重叠,重复造轮子
3.拆分后存在隔离与治理能力上的欠缺,并且会给技术异构带来麻烦。
4.拆分后可能带来数据冗余,但是又需要进行同步,要么使用数据库层面的同步,要么使用系统间
的接口进行同步处理。
5.系统之间的交互,由于缺少隔离与治理能力,一般都是硬编码的点对点交互。
参考相对于单体架构如下:
将一个大型应用拆分成多个相互独立的小型应用成为解决单体应用的一种方案,这就是垂直架构(也成为“竖井式架构”)。垂直架构根据业务属性将一个大的单体应用拆分成多个模块或子系统,子系统之间没有直接关联。
垂直架构相较于单体架构而言,进行了部分解耦,但是不够彻底,在各个子系统相互依赖的代码和模块中,存在重复代码拷贝和模块功能重复开发的情况。
垂直架构按功能进行 MVC 划分和按职能进行前后端分离模式,通过分层来规范职责和定义边界。