从单体架构到微服务的发展历程

架构的演变过程:

单体架构——>垂直架构——>soa面向服务架构——>微服务架构

单体架构:

在这里插入图片描述
特点:

  1. 所有功能集中在一个项目中
  2. 所有功能都要达成war包部署到服务器
  3. 通过集群(session共享集群)来提高服务器的性能

优点:

  1. 项目架构简单,前期开发的成本低,周期短,小型企业首先.

缺点:

  1. 全部的功能都集中在一个项目中完成,对于大型项目来说,开发难度高,不容易开发及扩展和维护.

垂直架构

在这里插入图片描述
特点:

  1. 以单体架构为单位进行系统的划分,划分成一个个系统.
  2. 项目与项目之间存在数据冗余,耦合度高.
  3. 项目是以接口调用为主,存在数据同步问题.

优点:

  1. 项目架构简单,前期开发的成本低,周期短,小型企业首先.
  2. 垂直架构进行mvc分层设计,针对分层做相应的处理做到集群(10~1000)
  3. 不同的项目采用不同的技术实现.

缺点:

  1. 全部的功能都集中在一个项目中完成,对于大型项目来说,开发难度高,不容易开发及扩展和维护.
  2. 集群扩展有瓶颈集群(10~1000)针对分层做了优化.

SOA服务架构

在这里插入图片描述
特点:

  1. 基于soa服务思想进行功能的抽取(重复代码问题解决),以服务为中心来管理项目.
  2. 各个系统之间要进行调用,所以出现ESB来管理项目(可以使用各种技术实现:webservice,rpc等)
  3. ESB是作为系统与系统之间桥梁,很难进行统一管理.

优点:

  1. 重复代码进行了抽取,提高了开发效率,提高了系统的可维护性.
  2. 可以针对某个系统进行扩展,做集群更容易.
  3. 采用ESB来管理服务组件,有利于降低企业开发项目难度

缺点:

  1. 系统与服务的界限模糊的,不利于设计.
  2. ESB是作为系统与系统之间桥梁,没有统一标准,种类很多,不利于维护.
  3. 抽取项目的粒度大,系统与服务之间解耦问题.

微服务架构

在这里插入图片描述
特点:

  1. 把系统的服务层完全独立出来,有利于资源的重复利用,提高开发效率.
  2. 微服务遵守单一原则
  3. 微服务与微服务之间的调用使用restful轻量级调用.

优点:

  1. 微服务拆分更细,有利于资源的重复利用,提高开发效率
  2. 可以更加精准针对某个服务做方案
  3. 微服务去中心化,使用restful轻量级通信协议比使用ESB企业服务总线更容易维护
  4. 适应市场更容易,产品迭代周期更短.

缺点:

  1. 微服务量多,服务治理成本高,不利于系统维护.
  2. 分布式系统架构且是微服务架构,技术成本高(容错,分布式事务等),对团队高挑战.

你可能感兴趣的:(Architecture)