单体框架、垂直框架、分布式框架、微服务框架简述 和区别
SSM以及SSH都为单体架构 前后端分离是 SpringBoot框架属于垂直应用架构
- 单体架构
单体架构大致就是将所有的逻辑和业务写在同一个项目中 一般网站流量小 并且只需要一个应用 将所有代码部署在一起 可以减少开发、部署、运维的成本
优点:项目架构简单、小型项目、开发成本低、维护方便
缺点:全部的功能都集成在了同一个工程中 对于大型项目来讲不易于开发和维护 项目模块之间紧密的耦合 单点容错率低 无法针对不同模块进行针对性优化和水平扩展 并且如果单体框架出现OOM内存溢出 可能会导致项目整个应用无法正常使用 容错率低
- 垂直架构
垂直应用架构就是将单体架构拆分为多个互不相干的应用 大大提升了效率 比如将一个单体是电商应用拆分为:1、电商系统(用户管理、商品管理、订单管理) 2、后台系统(用户管理、订单管理、客户管理) 3、CMS系统(广告管理、营销管理) 这样拆分成多个后 一旦出现用户量变大 需要增加电商系统的节点就可以了 而无需增加后台和CMS的节点
优点:系统拆分实现了流量分担 解决了并发问题 而且可以针对不同的模块进行相对的优化和水平扩展,一个系统的问题不会影响其他的系统 容错率大大提高
缺点:系统之间相互独立 无法进行相互调用 系统之间相互独立 会有重复的开发任务
- 分布式架构
垂直应用越来越多时 重复的代码量也会递增 所以出现了分布式架构 它将工程拆分为表现层和服务层两个部分 服务层中包含业务;逻辑 表层只需要处理和页面的交互 业务逻辑都是调用服务层的服务来实现
优点:抽取公共的功能为服务层 提高代码的复用性
缺点:系统间的耦合度变高 调用关系错综复杂 难以维护
- 微服务框架
在微服务架构中每个服务都是单独部署 微服务架构也更加的轻便(轻量级) SOA框架中跨域数据库存储会发生共享 但是微服务强调每个服务都是单独的数据库 完全保证了每个服务之间不会相互的发生影响 由此可见微服务架构比SOA架构更加的适合开发、迭代版本 因为粒度很精细
优点:服务原子化拆分 独立打包、部署和升级 保证每个微服务的服务请时刻见 利于扩展 微服务之间采用了RestFul等轻量级http协议相互调用
缺点:分布式系统开发的技术成本高(容错、分布式事务等) 复杂性高 各个微服务进行分布式独立部署 当进行模块调用时 分布式也会更加的麻烦
还没有评论,来说两句吧...