微服务与SOA:有什么区别?

在优锐课的java架构分享学习中,讨论了关于微服务是新的SOA吗? 人们还在谈论SOA吗? 让我们研究一下整体结构与这两种更新的体系结构之间的区别。

在“什么是微服务”中,了解到具有分布式架构的SOA和微服务比单片架构具有明显的优势。

在本博客中,我将解释基于分层的架构,并告诉你微服务和SOA架构之间的区别。

在深入研究微服务和SOA之间的差异之前,让我告诉你单片式架构,SOA和微服务之间的基本差异:

用外行的术语来说,一个整体类似于一个大容器,其中应用程序的所有软件组件都组装在一起并紧密包装。

面向服务的架构本质上是服务的集合。 这些服务相互通信。 通信可能涉及简单的数据传递,也可能涉及两个或多个协调某些活动的服务。 需要一些将服务相互连接的方法。
微服务又称微服务架构,是一种架构样式,可将应用程序构造为围绕业务领域建模的小型自治服务的集合。

你还可以观看下面的视频,其中我们的微服务架构专家解释了微服务架构和SOA之间的区别。

Edureka微服务与SOA教程

现在,让我们看看微服务和SOA之间的主要区别:

微服务与SOA

在将微服务与SOA进行比较时,它们都依赖于服务作为主要组件,但是在服务特征方面差异很大

面向服务的架构

SOA定义了四种基本服务类型,如下所示:

商业服务:

?定义核心业务运营的粗粒度服务。
?通过XML,业务流程执行语言(BPEL)等代表。

企业服务:

?实施业务服务定义的功能。
?主要依靠应用程序服务和基础结构服务来满足业务请求。

应用服务:

?限于特定应用程序上下文的细粒度服务。
?专用的用户界面可以直接调用服务。

基础设施服务:
?执行非功能性任务,例如身份验证,审核,安全性和日志记录。
?可以从应用程序服务或企业服务中调用。

微服务的服务分类标准有限。 它们由两种服务类型组成,如下所示。

功能服务:

?支持特定的业务运营。
?服务的访问是在外部完成的,这些服务不会与其他服务共享。
?与SOA一样,基础结构服务实现诸如审核,安全性和日志记录之类的任务。
?在这种情况下,服务不会向外界公开。

SOA和MSA之间的主要区别

微服务和SOA之间的主要区别在细节上

?服务粒度:微服务架构中的服务组件通常是单用途的服务,可以真正,非常好地完成一件事情。借助SOA,服务组件的大小范围可以从小型应用程序服务到大型企业服务。实际上,在SOA中以大型产品甚至子系统为代表的服务组件是很常见的。
?组件共享:组件共享是SOA的核心宗旨之一。实际上,组件共享就是企业服务的全部内容。 SOA增强了组件共享,而MSA则尝试通过“有界上下文”来最大程度地减少共享。有界上下文是指将组件及其数据耦合为具有最小依赖性的单个单元。由于SOA依靠多种服务来满足业务请求,因此基于SOA构建的系统可能会比MSA慢。
?中间件与API层:微服务架构模式通常具有所谓的API层,而SOA具有消息传递中间件组件。 SOA中的消息传递中间件提供了MSA中未提供的许多其他功能,包括中介和路由,消息增强,消息和协议转换。 MSA在服务和服务使用者之间有一个API层。
?远程服务:SOA体系结构依赖于消息传递(AMQP,MSMQ)和SOAP作为主要的远程访问协议。大多数MSA依赖于REST和简单消息传递(JMS,MSMQ)这两种协议,并且MSA中发现的协议通常是同质的。
?异构的互操作性:SOA通过其消息中间件组件促进了多种异构协议的传播。 MSA尝试通过减少集成选择的数量来简化体系结构模式。如果要在异构环境中使用不同协议集成多个系统,则需要考虑SOA。如果可以通过相同的远程访问协议公开和访问所有服务,则MSA是更好的选择。

最后,我要说要判断哪种架构比另一种架构还不是那么简单。 它主要取决于你要构建的应用程序的目的。 SOA更适合需要与许多异构应用程序集成的大型和复杂的业务应用程序环境; 较小的应用程序不需要消息中间件组件,因此不适合SOA。 另一方面,微服务更适合于较小且分区合理的基于Web的系统,在这些系统中,微服务为你提供了作为开发人员的更大控制权。 结论是,由于它们都具有不同的体系结构特征,因此这主要取决于要构建的应用程序的目的。

文章写道这里,如有不足之处,欢迎评论交流补充!

原文地址:https://blog.51cto.com/14634606/2461579

时间: 2024-08-04 12:13:06

微服务与SOA:有什么区别?的相关文章

微服务与SOA的区别

微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套.在这里我们不用组件而用小应用这个词更加合适,每个小应用除了完成自身本身的业务功能外,重点就是还需要消费外部其它应用暴露的服务,同时自身也将自身的能力朝外部发布为服务. 那么微服务跟SOA有什么区别呢,可以把微服务当做去除了ESB的SOA.ES

【转】微服务与SOA之间差了一个ESB

本文来自 dockone 编辑:yan 微服务只是最近提出的概念,实际上很多巨头公司(FB.Twitter.AWS等)已经在亲身实践.微服务并不是银弹,但是我们可以参考它的思想来解决自己遇到的问题.对于已经找准市场,业务即将或者马上就要急剧发展的创业公司,适合使用基于微服务的软件架构. 今天阅读了两篇关于微服务的文章,总结一些笔记,简单翻译了一篇文章.说明:并没有严格按照原文一字语句翻译,有部分自己的理解,还有部分是意译. 微服务(micro services)这个概念不是新概念,很多公司已经在

微服务、SOA、ESB比较

很多时候会听到微服务.SOA.ESB之间有着联系也有着区别,有时候了解了一下,过段时间有混肴模糊了今天看了一篇文章写的很好,特地记录一下. 原文地址:https://mp.weixin.qq.com/s/fCsVP5pO2vJX3DlMb-RdrA 一.SOA架构解析 SOA 全称是: Service Oriented Architecture,中文释义为 “面向服务的架构”它是一种设计理念,其中包含多个服务, 服务之间通过相互依赖最终提供一系列完整的功能.各个服务通常以独立的形式部署运行,服务

微服务 与 分布式 有什么区别?

一心而为 19:28:14微服务 与 分布式 有什么区别? 一心而为 22:07:41同构的 silo 集群 建立 起来是不是微服务架构, 假设我有20个 grain 全部放在一个silo host 上面但是这个进程在 比如5台机器上启动,然后组成集群,这样 web host的 client上 连接到这个集群就可以调用 20个grain了,剩下的就交给 orleans 的集群自管理 比如 由那个节点激活那个grain ,负载均衡等 一心而为 22:09:59这也算微服务吧,这种自动 化程度比较高

Atitit.架构设计趋势 设计模式 ---微服务架构  soa

Atitit.架构设计趋势 设计模式 ---微服务架构  soa 什么是微服务架构?1 .微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现1 微服务与康威定律2 微服务的一些设计 断路器 幂等2 <微服务设计>([英] 纽曼(Sam Newman))3 微服务架构与实践4 什么是微服务架构? Martin Fowler认为,微服务架构是一种独立部署的软件应用设计方式.这种架构方式没有准确的定义,但是在业务能力.自动部署.端对端的整合.对语言及数据的分散控制上有着共性.

微服务和SOA的区别

SOA和微服务架构的区别? 微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多 个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从 前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套.在这里我们不用组件而用小 应用这个词更加合适,每个小应用除了完成自身本身的业务功能外,重点就是还需要消费外部其它应用暴 露的服务,同时自身也将自身的能力朝外部发布为服务. 如果一句话来谈SOA和微服务的区别,即

webService与分布式与微服务与SOA的关系

SOA:是面向服务体系架构. webservice是SOA的一种实现技术.webservice基于两种协议:soap和rest协议.现在常用的是rest协议. web service (web 服务)是一种分布式部署系统的一种模式,意思就是说分布式的部署系统可以采用webservice技术来写相关的接口. 微服务是web service的细化,是它的升级版,比webservice更加的灵活. webservice的rest协议的准则: REST风格架构的设计应该具备一些基本的设计准则:

微服务以及SOA架构

Docker Docker解决了微服务架构下,服务的粒度细服务数量多所导致的开发环境搭建,部署以及运维成本高的问题,也可以大大降低随着微服务数量增多所导致的节点数量增多的成本. SOA vs 微服务 SOA:将服务分解成多个子系统来实现,粒度比较大,基于企业服务总线,集中式的服务架构,属于单块架构系统,相互依赖,部署复杂,集成方式依赖于SOAP/ESB/WS等重量级协议: 微服务则自底向上开展实施,一个系统被才分成多个粒度精细的服务,集成方式为HTTP/REST/JSON轻量级协议,无集中式总线

微服务和单体架构的区别以及springClould版本的说明

一.单体架构和微服务特点 二.springcloud与dubbo比较 三.版本规划 原文地址:https://www.cnblogs.com/histlyb/p/8410016.html