微服务架构与传统SOA几个主要区别

一、从服务拆分粒度考虑,微服务体系中的微服务是单一用途的(做一件事,做好它),而在SOA架构中,服务组件大小可以是小型应用程序服务,也可以是大型的企业应用服务。在很多使用SOA架构的系统中,粒度很大,单个服务经常就是某个大型的产品,甚至是整个一个子系统。 二、组件共享:组件共享是SOA的核心原则之一。事实上,组件共享是企业服务的全部内容。SOA架构增强了组件共享,而微服务架构MSA则试图通过“有界的上下文”来进行最小化共享。“有界上下文”指的是一个组件和它的数据之间的组合,它们属于一个具有最小依赖关系的单元。一般来说由于SOA依赖于多个服务来实现业务请求,因此构建在SOA上的系统可能比MSA慢。 三、中间件vs API网关层:微服务体系结构模式通常具有API层,而SOA则有一个消息传递中间件组件。SOA中的消息传递中间件提供了许多在微服务MSA中没有发现的额外功能,包括中介和路由、消息增强、消息和协议转换。MSA在服务和服务使用者之间有一个API层。 四、远程服务:SOA架构依赖于消息传递(AMQP、MSMQ)和SOAP作为主要的远程访问协议。大多数MSAs依赖于两个协议——REST和简单消息传递(JMS, MSMQ)。 五、异构互操作性:SOA通过其消息传递中间件组件可进行异构协议互相调用。MSA试图通过减少集成的选择数量来简化体系结构模式。如果您希望在异构环境中使用不同的协议集成多个系统,那么您需要考虑SOA。如果您的所有服务都可以通过相同的远程访问协议访问,那么MSA是一个更好的选择。

原文发布于微信公众号 - 程序你好(codinghello)

原文发表时间:2018-05-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WindCoder

简化软件集成:一个Apache Camel教程

本周收到的是一篇关于使用Apache Camel整合企业中各种软件的教程,涉及到从基础到Kubernetes集成。推荐直接看原文:

7461
来自专栏散尽浮华

Centos7下部署分布式跟踪工具Pinpoint的操作记录

一、Pinpoint简单介绍 Pinpoint是一款对Java编写的大规模分布式系统的APM工具,有些人也喜欢称呼这类工具为调用链系统、分布式跟踪系统。一般来说...

1502
来自专栏Java学习123

ESB企业服务总线

49514
来自专栏微信公众号:Java团长

Java开发必须要知道的知识体系

Java是超高人气编程语言,拥有跨平台、面向对象、泛型编程等特性。在TIOBE编程语言排行榜中,连续夺得第一宝座,而且国内各大知名互联网公司,后端开发首选语言:...

1772
来自专栏技术墨客

Jolokia架构介绍 原

    虽然jolokia是为了满足JSR-160的要求,但是他和JSR-160连接器有巨大的差异。其中最引人注目的区别是jolokia传递数据是无类型的数据(...

1143
来自专栏向治洪

android binder机制详解

摘要 Binder是android中一个很重要且很复杂的概念,它在系统的整体运作中发挥着极其重要的作用,不过本文并不打算从深层次分析Binder机制,有两点原...

2475
来自专栏乐百川的学习频道

使用MyJRebel获取免费的JRebel授权

在我们开发Java Web程序的时候,调试就是一个麻烦事情,每次更改类, 就需要重启服务器。对于Tomcat这样的小巧服务器来说,重启就重启吧,反正也就是几秒钟...

4456
来自专栏我就是马云飞

Gradle 提速:每天为你省下一杯喝咖啡的时间

作为一名 Android 开发同学,当你的工程和代码达到一定规模的时候,相信你一定遇到过编译速度过慢的问题。比如:

1323
来自专栏陈树义

数据库历险记(三) | 缓存框架的连环炮

最近在思考数据库以及缓存的问题,发现这些知识点其实是有一点关联的,于是这篇文章通过一个连环提问的方式将这些知识点串联起来。

1003
来自专栏史上最简单的Spring Cloud教程

我是如何根据豆瓣api来理解Restful API设计的

1.什么是REST REST全称是Representational State Transfer,表述状态转移的意思。它是在Roy Fielding博士论文首次...

2515

扫码关注云+社区

领取腾讯云代金券