1.传统的单体架构
简单理解为单点架构,就是我们经常写的SSM或者SSH的项目,采用分层架构模式。即数据访问层(dao层),业务逻辑层(service),控制器层(controller),从前端到后端所有的代码可以由一人完成。
就是把项目的代码方到同一个项目中,部署在一个tomcat上面。
优点:结构简单,部署简单 开发简单 运维简单
缺点:代码耦合度高 项目启动慢 技术单一
如果多人同时开发 ,会发生冲突 、所以这种耦合度不便于开发。
只适用于小团队或者个人开发。
某刻模块不可用,会导致整个系统下线,无法使用
使用场景: 传统项目 个人学习
2.分布式架构
将原来的单体架构的项目进行模块化的拆分,即使某个模块宕机也不会使项目下线。降低了模块之间的耦合度。比如将一个商城系统进行拆分:
3.SOA面向服务架构
缺点:1.采用soap协议实现通讯,xml传输非常重,效率低下
2.服务化管理和治理设施不够完善
3.不适合前后端分离项目
将控制器层和业务逻辑层实现拆分 通过(http+json)的方式实现
4.微服务架构的基本概念
基于SOA架构的基础上演变而来,对于服务的拆分会更加细粒度,提高开发效率,服务于服务之间通讯采用Restfu形式,数据交互格式采用HTTP+json,http可以实现跨语言的平台,完成通讯。
优点:1.服务拆分更加细粒度,提高开发效率
2.服务与服务之间独立部署,互不影响。降低耦合度
缺点:1.分布式事务(解决方案 rabbitmq、rocketmq事务消息、seata)一致性问题
2.分布式锁