9折倒计时一周! QCon 全球软件开发大会·上海站讲师上线95% >>> 了解详情
写点什么

SOA 和微服务之间的区别

  • 2017-07-26
  • 本文字数:930 字

    阅读完需:约 3 分钟

近几年,我们有很多文章 SOA 和微服务之间的不同点和相似点进行了分析。有些人认为 SOA 有很多地方是值得微服务学习的,而有些人则认为区别对待微服务和SOA 会更好。而 Neal Ford 认为,将单体迁移到面向服务的架构要比迁移到微服务来得容易。关于选择 SOA 还是微服务的话题,最近并没有太多的争论,直到 Redmonk 的 Stephen O’Grady 发表了他的文章,这个话题再次进入了人们的视野。O’Grady 在他的文章里说到,服务的大小不应该成为关键的决定性因素。这些年来,人们也一直在争论这个观点,比如 Dan North 。而 Jeppe Cramon 也说过:

单纯使用服务大小来定义微服务有失偏颇,也难以确定一个微服务是否被赋予了正确的职责……

O’Grady 相信,SOA 和微服务之间有着千丝万缕的联系:

在过去,SOA 存在的一些缺陷导致它变成企业的幻象,就像今天那些使用了微服务云原生架构的激进型组织一样。如果我们深入到 SOA 的核心,我们会发现,SOA 的本意是说架构应该由服务组成,而不是单体。

O’Grady 在他的文章里通过 Google Trends 生成了一些图表,其中第一张图表显示了 SOA 在整个行业历史上曾经有一小段时期处于流行的高峰状态。

Stephen 认为,通过服务大小来区分 SOA 和微服务将有碍找出导致 SOA 没落与微服务崛起的真正原因,SOA 是由厂商驱动的,而微服务更多的是由开发者来驱动。

因为 AWS 的大肆成功,我们无法否认基于服务驱动的平台确实是构建可伸缩平台的一种有效方式,也无法否认它们在现今所取得的主导地位。但值得注意的是,现今基于服务的平台一般是由开发者来驱动的。而 SOA 最初由大型的厂商来驱动,基于拜占庭式的复杂(一般带有政治性质)的标准框架来构建服务,而这些标准并不为开发者所接受。

O’Grady 在文章中提到,微服务在好的方面和不好的方面都借鉴了 SOA。

微服务比单体更容易开发,而且没有了 SOA 的厂商标准累赘。

在过去几年,还有其他的一些人也表达了类似的观点, Asanka 说:

如今,企业正在转向更干净的 SOA,开始拥抱 MSA。或许最大的看点是组件化,以及微服务提供的单一功能能够被快速地部署成组件,在必要的时候可以很容易地进行伸缩。不管怎样,这是一种很新奇的概念。

其中的第二张 Google Trends 图表也很有趣。

查看英文原文 The Difference between SOA and Microservices?

2017-07-26 19:0017015
用户头像

发布了 321 篇内容, 共 131.0 次阅读, 收获喜欢 139 次。

关注

评论

发布
暂无评论
发现更多内容

微服务架构中,二次浅封装实践

知了一笑

架构 分布式 微服务 技术栈 二次封装

【高并发】深度解析ScheduledThreadPoolExecutor类的源代码

冰河

Java 并发编程 多线程 高并发 异步编程

极客时间算法训练营Week01

jjn0703

算法训练营

第四模块总结

张靖

架构训练营

flutter中的列表的性能优化前奏

坚果

flutter 11月日更

Go语言学习查缺补漏ing Day3

Regan Yue

Go 语言 11月日更

堪称数据库的天花板,极致经典的字节内部MySQL宝典意外流出!

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

区块链和人工智能是否可以保护森林不再被砍伐?

CECBC

微服务治理之自适应降载

万俊峰Kevin

微服务 微服务架构 服务治理 go-zero Go 语言

遇到了几道关于作用域的前端小题

空城机

JavaScript 大前端 11月日更

架构实战营模块四作业

孙志强

架构实战营

模块四作业-redis 存储方案设计 - 学生考试试卷

Geek_cb2b43

字节跳动面试官:SpringBoot统一接口返回和全局异常处理怎么玩?

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」让我们一起实践RocketMQ的服务搭建及配置操作

洛神灬殇

RocketMQ 11月日更 Apache RocketMQ 集群搭建

Pulsar VS. Kafka(1): 统一的消息消费模型(Queue + Stream)

Apache Pulsar

kafka 架构 云原生 Apache Pulsar 消息中间件

不可思议,阿里巴巴首发:Java核心框架指导手册,竟1小时点击量破千万

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

【LeetCode】N 叉树的最大深度Java题解

Albert

算法 LeetCode 11月日更

nginx配置详解

小鲍侃java

11月日更

你敢相信?我用了3个月成功破茧成蝶,从简历被拒到收割8个大厂offer

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

明道云对接企查查,一键矫正客户信息

明道云

Pulsar VS. Kafka(2): 以Segment为中心的架构

Apache Pulsar

kafka 架构 分布式 Apache Pulsar 消息中间件

主客体建模法

少个分号

21 K8S之容器存储接口CSI

穿过生命散发芬芳

k8s 11月日更

调优达到上限?这份尊享版性能实战套餐,让你领先别人好几个级别

热爱java的分享家

Java 面试 程序人生 编程语言 经验分享

css布局之全屏布局

Augus

CSS 11月日更

元宇宙:区块链时代的新名字

CECBC

真香!Github一夜爆火,阿里性能优化不传之秘终于开源

热爱java的分享家

Java 程序人生 性能优化 编程语言 经验分享

终于有人将Github星标百万的Spring技术精髓收录成册

热爱java的分享家

Java 面试 程序人生 springboot 经验分享

考试试卷存储方案

天天向上

架构实战营

区块链技术革命才刚刚开始

CECBC

Apache Pulsar 与 Apache Kafka 在金融场景下的性能对比分析

Apache Pulsar

大数据 kafka 架构 云原生 Apache Pulsar

  • 扫码添加小助手
    领取最新资料包
SOA和微服务之间的区别_SOA_Mark Little_InfoQ精选文章