后端的应用架构经过发展,分为单一应用架构、垂直应用架构、分布式应用架构、面向服务的分布式应用架构、微服务架构等。
一、单一应用架构
把所有功能都集中在一个项目里面,类似于刚学习时的SSM,就把所有的功能都放在同一个项目。
适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用。
缺点: 1、性能扩展比较难
2、协同开发问题
3、不利于升级维护
二、垂直应用架构
通过切分业务来实现各个模块独立部署,降低了维护和部署的难度,团队各司其职更易管理,性能扩展也更方便,更有针对性。
缺点: 公用模块无法重复利用,开发性的浪费‘’
三、分布式应用架构
将各个应用通过分层独立出来,可以利用rpc实现web与service、service与service的互相调用,提高了代码的复用性。
缺点: 每个调用的模块要存储一份完整的被调用模块的位置和状态,一旦位置和状态发生变化,就要更新所有涉及的配置。
从图可以看出,这种架构缺乏服务治理,服务是耦合的,如果服务地址是发生了变化,并不会动态化的发现服务地址,需要修改的地方很多
四、
面向服务的分布式架构
随着架构不断增大,服务节点也越来越多,服务之间的调用和依赖关系也越来越复杂,需要有一个统一的中心来调度、路由、管理所有的服务,基于这个中心构建的这个星型架构就是现在目前最主流的SOA分布式架构。
服务地址不需要写死,服务是动态的自动注册和发现
五、微服务架构
这个架构是在soa的基础上实现的,微服务架构粒度更加精细,每个功能同有一个专门的项目。这种架构的代表是微服务架构(springcloud)