失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 软件产品架构中什么是单体架构 SOA架构 微服务架构?

软件产品架构中什么是单体架构 SOA架构 微服务架构?

时间:2018-07-10 07:31:10

相关推荐

软件产品架构中什么是单体架构 SOA架构 微服务架构?

单体架构

在传统IT行业的软件系统设计大多都是各种独立子系统的堆砌,这也就是所说的单体架构,其本身扩展性差,可靠性低,维护成本高。单体架构在初期系统规模比较小的情况下尚且能够较好的支撑,但是随着系统规模的扩大,它暴露出来的问题也越来越多,主要有以下几点:

复杂性逐渐变高,问题修复和新功能开发难度和成本高,引入新问题的可能性变大。同时,任意模块的缺陷都可能会影响整个系统,可靠性低。

随着人员流动,加之复杂性高,新的问题很难被发现和解决,久而久之,问题逐渐变多,变难、变大,技术债务逐渐上升。

随着模块不断集成,部署速度逐渐变慢

想进行整体的技术创新基本不可能,阻碍技术创新

垂直和水平的可扩展性差

SOA架构

随后,引入了SOA服务化(面向服务的架构,它将应用程序的不同功能单元(服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来)。但是,由于 SOA 早期均使用了ESB总线模式,这种总线模式与某种技术栈是强绑定的,如,J2EE。这又使得很多企业的遗留系统很难对接,切换时间太长,对接成本太高,新系统稳定性的收敛也需要一些时间。最终 SOA 看起来很美,但却成为了企业级奢侈品,中小公司都望而生畏。

SOA服务化思想下的微服务架构

微服务是在 SOA 上做的升华,微服务最早由Martin Fowler与James Lewis于共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP Rest API的方式(告别ESB服务总线),这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。

简单讲,微服务不再强调传统SOA架构里面比较重的ESB服务总线,同时将SOA的思想延伸到单个业务系统内部实现真正的组件化。微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”。

从微服务的概念可以看出它有如下好处:

每个服务可以独立开发,易于开发,提高开发人员的生产效率

局部修改容易部署

技术栈不受限

单个服务支持独立部署和发布,可以进行快速迭代部署,更快的交付时间

更有利于业务的扩展,可伸缩性强

转自@软件测试开发技术栈 ,希望对您有所帮助。

如果觉得《软件产品架构中什么是单体架构 SOA架构 微服务架构?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。