SOA和微服务的区别(6大区别)

SOA和微服务的区别(6大区别)-mikechen

SOA和微服务很多同学傻傻分不清楚,下面就给大家介绍6大SOA和微服务的区别@mikechen

核心概念不同

首先,我们来理解下SOA,全称是Service Oriented Architecture,即面向服务的架构。

它是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。

SOA 依赖于企业服务总线(ESB),ESB(企业服务总线)在 SOA 中起到了中央协调者的作用。

通过ESB(企业服务总线),来实现服务之间的通信、消息路由、转换和协议转换。

而微服务架构,其实和 SOA 架构类似,微服务是在 SOA 上做的升华。

微服务架构强调的一个重点是:业务需要彻底的组件化和服务化。

即原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用,这些小应用之间通过服务完成交互和集成。

 

服务粒度不同

在SOA中服务的粒度可以比较粗,它可以是一个较大的服务,可能包含多个相关的业务功能。

在微服务中,服务的粒度通常更小,每个微服务都专注于一个明确的业务领域或功能,实现单一职责原则。

 

服务规模不同

SOA 中的每一个服务整体上来说还是一个比较大的单体项目,因为 SOA 一般不会分的很细。

而微服务则不同,在微服务中我们会将服务都划分的很细,每一个服务基本上都是只负责一个很小的功能模块。

 

范围复杂性不同

SOA是一种更宏观的架构风格,它关注整个系统的组织和集成,旨在实现不同应用程序和系统之间的松耦合和灵活性。

微服务是SOA的一种特定实践,更加关注于将一个大型应用程序拆分为一系列小型、独立的服务单元,每个服务单元专注于解决一个明确的业务功能。

 

数据交互方式不同

SOA中,服务之间的数据交互通常是通过消息传递、服务总线或共享数据库等方式进行。

微服务中,每个服务通常拥有自己的数据库,并通过轻量级的通信机制(如RESTful API或消息队列)进行交互。

 

部署独立性不同

在SOA中,服务通常是部署在统一的运行时环境中,共享相同的基础设施和中间件。

微服务架构鼓励每个服务单元都是独立部署的,可以根据需要进行独立扩展和升级。

综上所述SOA是一个更宏观的概念,着眼于整个系统的组织和集成。

而微服务是SOA的一种实践方式,着重于将系统拆分为小型、独立的服务单元,以实现更高的灵活性和可伸缩性。

微服务是一种特定的SOA实现方式,可以看作是SOA的一种演化和优化。

作者简介

陈睿|mikechen,10年+大厂架构经验,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

评论交流
    说说你的看法