1.1.1 单体架构简介
经典的 3 层模型,即表示层、业务逻辑层和数据访问层。
- 口 表示层: 用于直接和用户交互,也称为交互层,通常是网页、 UI 等。
- 口 业务逻辑层:即业务逻辑处理层,例如用户输入的信息要经过业务逻辑层的处理后, 才能展砚给用户。
- 口 数据访问层: 用于操作数据库,用户在表示层会产生大量的数据,通过数据访问层对 数据库进行读写操作。
在一个小型应用的初始阶段,访问量较小,应用只需要一台服务器就能够部署所有的资源,例如将应用程序、数据库、文件资源等部署在同一台服务器上。采用这种架构的性价比是非常高的,开发速度快,开发成本 低,只需要一台廉价的服务器。
1.1.2 单体架构存在的不足
- 口 业务越来越复杂,单体应用的代码量越来越大,代码的可读性、可维护性和可扩展性下降,新人接手代码所需的时间成倍增加,业务扩展带来的代价越来越大。
- 口 随着用户越来越多,程序承受的并发越来越高,单体应用的并发能力有限。
- 口 测试的难度越来越大,单体应用的业务都在同一个程序中,随着业务的扩张、复杂度 的增加,单体应用修改业务或者增加业务或许会给其他业务带来一定的影响,导致测 试难度增加。
1.1.3 单体架构使用服务器集群及存在的不足
- 口 系统仍然为单体应用 , 大量的业务必然会有大量的代码,代码的可读性和可维护性依 然很差。
- 口 面对海量的用户,数据库将会成为瓶颈,解决方案将使用分布式数据库,也就是将数 据库进行分库分表。
- 口 持续交付能力差,业务越复杂,代码越多,修改代码和添加代码所需的时间越长。新 人熟悉代码的时间长、成本高。