软件架构的演变过程!!!

一:单体应用架构

单体应用架构:将一个系统的多个模块做成一个web项目,然后打成jar包或者war包部署到tomcat服务器上。

软件架构的演变过程!!!_第1张图片

 优点:

①:项目架构简单,前期开发成本低,周期短,小型项目的首选。

②:部署方便,所有的功能集成在一个项目上,大成jar包部署Tomcat

缺点:

①:应用容错性差,某个小功能的程序出错可能导致整个系统宕机。

②:伸缩性困难,只能对整个项目进行扩展。

③:开发协作困难。

④:技术升级难。

二:垂直应用架构

垂直应用架构:及那个原来的一个系统拆成多个模块,然后每个模块部署到一台tomcat服务器上。

软件架构的演变过程!!!_第2张图片

 优点:

①:针对不同模块进行优化和水平扩展。

②:系统相互独立,互不影响,业务迭代时更加高效

缺点:

①:由于系统之间相互独立,无法进行相互调用,会有重复的开发任务。

三:分布式架构

分布式架构:将服务层单独启并部署到tomcat上对外提供服务,在controller中可以通过远程调用访问服务层中的方法。

软件架构的演变过程!!!_第3张图片

 优点:

①:抽取公共的功能为服务层,提高代码的复用性。

缺点:

②:调用关系错综复杂,难以维护。

四:SOA架构

SOA:即面向服务的架构,在分布式的基础上,增加一个调度中心(注册中心)对系统服务进行实时管理。

软件架构的演变过程!!!_第4张图片

优点:

①:使用注册中心解决了各个服务之间的服务依赖和调用关系的自动注册与发现。

缺点:

①:基于dubbo无法实现各个服务跨语言开发

②:模块之间调用对注册中心依赖性过高

③:模块之间调用变为复杂

五:微服务架构

微服务架构 :SOA的升级版,SOA架构注重的是应用程序服务的可重用性的最大化。微服务架构注重的是服务的职责单一,服务独立,轻量。

软件架构的演变过程!!!_第5张图片

 优点:

①:面向服务:微服务对外暴露业务接口(基于http协议可跨语言开发)

②:自治:团队独立,技术独立,数据独立,部署独立。

③:隔离性强:服务调用做好隔离,容错,降级,避免出现级联问题。

缺点:

①:对程序员要求过高。

---------------------整理不易点个关注呗!!!-------------------

你可能感兴趣的:(java,开发语言)