微服务和 SOA 的 6 大核心区别,你都知道吗?

举报
mikechen的互联网架构 发表于 2024/11/18 22:13:50 2024/11/18
【摘要】 本文详解SOA与微服务的六大区别,帮助更好地理解和应用这两种架构,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。

关注△mikechen的互联网架构△,10年+BAT架构经验倾囊相授

大家好,我是 mikechen | 陈睿

SOA 和微服务很多同学傻傻分不清楚,本文详解 6 大 SOA 和微服务的区别。@mikechen

核心设计不同

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

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

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

image.png

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

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

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

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

服务粒度不同

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

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

image.png

部署独立性不同

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

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

image.png

独立部署使得每个微服务能够独立于其他服务进行开发、测试、发布、和升级,从而提高了系统的灵活性、和敏捷性。

比如:由于每个微服务可以独立部署,团队可以根据业务需求快速发布新功能、或修复 bug,而无需等待其他团队的进度,这提高了发布的频率和灵活性。

服务规模不同

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

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

范围复杂性不同

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

image.png

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

数据交互方式不同

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

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

image.png

综上所述,

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

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

我们可以将微服务看作是SOA的一种演化、和优化

以上,是微服务和 SOA 的 6 大核心区别的详细解析,欢迎评论区留言交流或拓展。

我是 mikechen | 陈睿 ,关注【mikechen的互联网架构】,10年+BAT架构技术倾囊相授。

新的架构专题内容,第一时间更新至:阿里架构师进阶全部合集

本文已同步我的技术博客 www.mikechen.cc,更新至我原创的《30W+字阿里架构技术合集》中。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。