经典3层模型
- 表现层:交互层,用于直接与用户交互。通常指网页,UI
- 业务逻辑层:业务逻辑处理层
- 数据访问层:用于操作数据库
经典的单体架构
- 表现层、逻辑层、数据访问层在一个工程,编译打包,部署在一台服务上。
- 经典的J2EE工程:表现层JSP、业务逻辑层Service Controller和数据访问层Dao ,打成war包,部署在tomcat等其他的servlet容器中运行。
- 经典的部署方式LMAP
单体架构优势
- 开发快速
- 运维难度低、系统管理方便
- 服务器成本低
单体架构不足
- 不停迭代,代码量冗余,可读性、可维护性和可扩展性下降。
- 单体应用并发能力有限
- 单一系统,并行困难,不利于告诉迭代
单体架构服务器集群
- 负载均衡:处理高并发网络请求,将访问分派到不同的应用服务器。软负载:nginx等,硬负载:F5等
- 应用部署集群:横向扩展,高可用。用户量增加,扩展服务器即可。
- 缓存服务器:提高响应速度,缓解数据库压力。
- 数据库:主从备,读写分离 ; 分库分表
单体架构服务器集群的不足
- 单体应用,代码量依旧冗余,可读性、可维护性、可扩展性还是欠缺。
- 海量访问,数据库依旧是瓶颈。
- 单应用依旧迭代缓慢,持续交付能力差
由此可见,在应用初期,单体应用从成本、开发时间和运维方面有优势。但随着业务量和用户量增加,缺点也显而易见