单体框架、垂直框架、分布式框架、微服务框架简述 和区别

SSM以及SSH都为单体架构 前后端分离是 SpringBoot框架属于垂直应用架构

  • 单体架构

单体架构大致就是将所有的逻辑和业务写在同一个项目中 一般网站流量小 并且只需要一个应用 将所有代码部署在一起 可以减少开发、部署、运维的成本

    优点:项目架构简单、小型项目、开发成本低、维护方便

    缺点:全部的功能都集成在了同一个工程中 对于大型项目来讲不易于开发和维护 项目模块之间紧密的耦合 单点容错率低 无法针对不同模块进行针对性优化和水平扩展 并且如果单体框架出现OOM内存溢出 可能会导致项目整个应用无法正常使用 容错率低 

  • 垂直架构

垂直应用架构就是将单体架构拆分为多个互不相干的应用 大大提升了效率 比如将一个单体是电商应用拆分为:1、电商系统(用户管理、商品管理、订单管理)  2、后台系统(用户管理、订单管理、客户管理)  3、CMS系统(广告管理、营销管理) 这样拆分成多个后 一旦出现用户量变大 需要增加电商系统的节点就可以了 而无需增加后台和CMS的节点

    优点:系统拆分实现了流量分担 解决了并发问题 而且可以针对不同的模块进行相对的优化和水平扩展,一个系统的问题不会影响其他的系统 容错率大大提高

    缺点:系统之间相互独立 无法进行相互调用 系统之间相互独立 会有重复的开发任务

  • 分布式架构

垂直应用越来越多时 重复的代码量也会递增 所以出现了分布式架构 它将工程拆分为表现层和服务层两个部分 服务层中包含业务;逻辑 表层只需要处理和页面的交互 业务逻辑都是调用服务层的服务来实现

    优点:抽取公共的功能为服务层 提高代码的复用性

    缺点:系统间的耦合度变高 调用关系错综复杂 难以维护

  • 微服务框架

在微服务架构中每个服务都是单独部署 微服务架构也更加的轻便(轻量级) SOA框架中跨域数据库存储会发生共享 但是微服务强调每个服务都是单独的数据库 完全保证了每个服务之间不会相互的发生影响 由此可见微服务架构比SOA架构更加的适合开发、迭代版本 因为粒度很精细

    优点:服务原子化拆分 独立打包、部署和升级 保证每个微服务的服务请时刻见 利于扩展  微服务之间采用了RestFul等轻量级http协议相互调用

    缺点:分布式系统开发的技术成本高(容错、分布式事务等)  复杂性高 各个微服务进行分布式独立部署 当进行模块调用时 分布式也会更加的麻烦

你可能感兴趣的:(分布式,微服务,java)