专栏首页程序你好微服务架构与传统SOA几个主要区别

微服务架构与传统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),作者:she9

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 转换到微服务架构时需要考虑的7件事

    每当您的团队从头开始开发一个新的应用程序时,不需要陷入多年前做出的过时决策和继承技术债时,感觉很好。现在开发新应用的大多数团队可能会选择使用Docker,并采用...

    程序你好
  • 开发人员学习微服务架构最容易犯五个的错误

    程序你好
  • 微服务架构体系——它适合您的软件开发吗?

    “Microservice architecture provides a range of technical benefits that contribut...

    程序你好
  • 跟我学Spring Cloud(Finchley版)-04-服务注册与服务发现-原理剖析

    地址硬编码问题——电影微服务中将用户微服务的地址写死,如果用户微服务地址发生变化,难道要重新上线电影微服务吗?

    用户1516716
  • Spring Cloud集中环境中开发如何避免服务冲突

    使用中央环境开发Spring Cloud微服务,同时避免服务冲突。开发人员如何在同一个中央弹簧云环境中同时工作并且仍然不会互相干扰?

    lyb-geek
  • 抽象组件库的可行性讨论

    首先这篇博文不是教程也不是研究技术技巧,这只是我对目前我正在着手写的一个组件库的一些想法,以及我对当前主流的这些css框架的一些看法。 当前的一些主流css框架...

    练小习
  • Coverage analysis in ABAP in Eclipse

    Jerry Wang
  • istio-2:istio1.4.2-demo部署与体验,聊聊一些个人看法

    b.本文主要以《深入浅出Istio:Service Mesh快速入门与实践》中的python-flask-demo为例论述。

    Criss@陈磊
  • 加入Transformer-XL,这个PyTorch包能调用各种NLP预训练模型

    PT-BERT 项目地址:https://github.com/huggingface/pytorch-pretrained-BERT

    机器之心
  • istio-2:istio1.4.2-demo部署与体验,聊聊一些个人看法

    b.本文主要以《深入浅出Istio:Service Mesh快速入门与实践》中的python-flask-demo为例论述。

    千里行走

扫码关注云+社区

领取腾讯云代金券