2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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:0018649
用户头像

发布了 322 篇内容, 共 150.0 次阅读, 收获喜欢 148 次。

关注

评论

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

CECBC区块链专委会副主任吴桐受邀成为伏羲智库兼职研究员

CECBC

区块链技术 吴桐 商务部CECBC 伏羲智库 政务链

解决火狐新窗口打开网页被拦截问题

Lee Chen

大前端

可读代码编写炸鸡八 - 变量兜兜转转像是一场梦

多选参数

代码 代码组织 代码规范 可读代码编写 可读代码

盘点本周区块链国内大事件

CECBC

区块链技术助力打造新公益样板

CECBC

云原生技术栈的关键技术

李英俊

云原生 Go 语言

kubernetes 集群安装(kubeadm)

小小文

Docker Kubernetes 群集安装 etcd

【总结】性能优化

小胖子

隐私计算:实现数据价值释放的突破口

CECBC

密码学 政策扶持 隐私计算 发展现状

番外篇:新鲜上市的Unicorn - Pinterest的数据系统

顾仲贤

命令行一键启动Hadoop集群

我是个bug

大数据 hadoop hdfs YARN Big Data

架构师训练营架构第七周总结

Cloud.

那些好用的命令

北漂码农有话说

个人博客网站搭建

北漂码农有话说

Swift十年

SwiftMic

Swift十年

学习Rust,我的一些体会

Kurtis Moxley

编程 rust 随笔杂谈

手写一个Vue风格组件

林浩

Java 大前端 webpack

redis系列之——数据持久化(RDB和AOF)

诸葛小猿

redis 持久化 aof rdb

看动画学算法之:排序-选择排序

程序那些事

数据结构 算法 动画

ARTS Week8

时之虫

ARTS 打卡计划

Windows Sandbox

Dare Devor

Sandbox Virtualization

追光逐影:曝光相对论(1)

北风

摄影 影调 曝光 黑白

架构师训练营第六周课后总结

Cloud.

LeetCode 题解:1051. 高度检查器,JavaScript,先排序再比较,详细注释

Lee Chen

大前端 LeetCode

使用 Docker 部署 Django + MySQL 8 开发环境

AlwaysBeta

MySQL django Docker Dockerfile Docker-compose

性能压测的时候,系统响应时间和吞吐量如何变化,为什么?

不在调上

week7

不在调上

区块链想要拥有互联网级的用户体验,如何从应用层与公链去改进?

CECBC

看动画学算法之:排序-归并排序

程序那些事

Java 算法 排序 归并排序

流量控制算法

架构 流量控制 流控算法

生活困境

落曦

SOA和微服务之间的区别_SOA_Mark Little_InfoQ精选文章