引言软件体系结构的发展经历了从单体体系结构、垂直体系结构、SOA体系结构向微服务体系结构的发展过程,以下将分别了解这些体系结构。
单体体系结构
单体体系结构将所有功能集中在一个项目中。
优点是结构简单,前期开发成本低,开发周期短,适合小型项目。
缺点所有功能都集成在一个工程中,对大型项目难以开发、扩展和维护。
技术堆栈受到限制,只能用一种语言开发。
系统的性能扩展只能通过扩展集群节点,成本很高。
垂直结构描述:根据业务进行切割,形成小单体项目。
优点:技术堆栈可扩展(不同的系统可以用不同的编程语言编写)。
缺点功能集中在一个项目上,不利于开发、扩展、维护。
系统的扩展只能用集群方式进行。
项目间功能冗馀、数据冗馀、耦合性强。
SOA体系结构SOA都称为面向服务的体系结构,是面向服务的体系结构。 松散耦合的粗粒度APP应用程序组件(服务)可以根据需要通过网络分布式部署、组合和使用。 服务通常以独立的形式存在于操作系统进程中。
从功能角度,将业务逻辑抽象为可复用服务,通过服务组织实现业务快速播放。 目的:将原有业务功能转化为通用业务服务,实现业务逻辑快速复用。
将重复功能和模块提取为组件形式,对外提供服务,在项目和服务之间以企业服务总线(ESB )的形式作为通信的桥梁。
优点重复功能和模块被提取为服务,提高开发效率。
复用性高。
维护性很高。
缺点确认各系统之间业务不同,功能和模块重复很难。
提取服务的粒度大。
系统和服务之间的耦合度很高。
微服务体系结构典型微服务体系结构
微服务是指将系统服务层完全独立,提取为一个个微服务。 其特点是提取粒度更细,遵循单一原则,通过轻量级框架协议传输。
优点:服务划分粒度更细,有助于提高开发效率。
可以制定适应不同服务的优化计划。
适合网络时代,产品迭代周期更短。
缺点:粒度太细,服务太多,维护成本高。
分布式系统开发的技术成本高,对团队的挑战大(体系结构比较新,需要团队成员进一步学习) )。