软件架构的演进过程

1.软件架构演进过程

软件架构的发展经历了由单体架构、垂直架构、SOA架构到微服务架构的演进过程,下面我们分别了解一下这几个架构。

单体架构

架构说明
1、所有的功能集成在一个项目工程中(All in one)。
2、所有的功能打一个war包部署到服务器。
3、应用与数据库分开部署。
4、通过部署应用集群和数据库集群来提高系统的性能。
架构优点:
​ 架构简单,前期开发成本低、开发周期短,适合小型项目。
架构缺点:
​ 全部功能集成在一个工程中,对于大型项目不易开发、扩展和维护。
​ 技术栈受限,只能使用一种语言开发。
​ 系统性能扩展只能通过扩展集群节点,成本高。

垂直架构

架构说明:
1、以单体结构规模的项目为单位进行垂直划分项目即将一个大项目拆分成一个一个单体结构项目。
2、 项目之间的接口多为数据同步功能,如:数据库之间的数据库,通过网络接口进行数据库同步。
架构优点:

1. 技术栈可扩展(不同的系统可以用不同的编程语言编写)。
2. 项目架构简单,前期开发成本低,周期短,小型项目的首选。
3. 通过垂直拆分,原来的单体项目不至于无限扩大。

架构缺点:
功能集中在一个项目中,不利于开发、扩展、维护。
​ 系统扩张只能通过集群的方式。
​ 项目之间功能冗余、数据冗余、耦合性强。

SOA架构

架构说明:
​ 将重复功能或模块抽取成组件的形式,对外提供服务,在项目与服务之间使用ESB(企业服务总线)的形式作为通信的桥梁。
在这里插入图片描述
架构优点:

​ 1、将重复的功能抽取为服务,提高开发效率,提高系统的可重用性、可维护性。

​ 2、可以针对不同服务的特点制定集群及优化方案。

​ 3、采用ESB减少系统中的接口耦合。

架构缺点:

​ 1、各系统之间业务不同,很难确认功能或模块是重复的。
​ 2、抽取服务的粒度大。
​ 3、系统和服务之间耦合度高。
​ 4、虽然使用了ESB,但是服务的接口协议不固定,种类繁多,不利于系统维护。

微服务架构

在这里插入图片描述
架构说明:
​ 将系统服务层完全独立出来,抽取为一个一个的微服务。
​ 抽取的粒度更细,遵循单一原则。
​ 采用轻量级框架协议传输。
架构优点:
​ 服务拆分粒度更细,有利于提高开发效率。
​ 可以针对不同服务制定对应的优化方案。
​ 适用于互联网时代,产品迭代周期更短。
架构缺点:
​ 粒度太细导致服务太多,维护成本高。
​ 分布式系统开发的技术成本高,对团队的挑战大。

soa和微服务的区别

功能SOA微服务
组件大小大块业务逻辑单独任务或小块业务逻辑
耦合通常松耦合总是松耦合
公司架构任何类型小型、专注于功能交叉的团队
管理着重中央管理着重分散管理
目标确保应用能够交互操作执行新功能,快速拓展开发团队
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值