SOA和微服务之间的区别
近几年,我们有很多文章对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图表也很有趣。
SOA和微服务之间的区别的更多相关文章
- 阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别(转载)
转载来源:https://youzhixueyuan.com/the-difference-between-restful-soap-rpc-soa-and-micro-service.html 内容 ...
- Restful、SOAP、RPC、SOA、微服务之间的区别
什么是Restful Restful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful架构或服务. 主要的设计原则: 资源与URI ...
- SOA和微服务架构的区别?
转自知乎:https://www.zhihu.com/question/37808426/answer/93335393 SOA和微服务架构的区别? 微服务架构强调的第一个重点就是业务系统需要彻底的组 ...
- SOA和微服务架构的区别
微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用.这些小应用之间通过服务完成交互和集成.每个小应用从前端web ui ...
- MVC RPC SOA 和微服务架构的区别
MVC RPC SOA 微服务架构的区别 单体架构 MVC(Model View Controller) M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使 ...
- 面试官灵魂三问:什么是SOA?什么是微服务?SOA和微服务有什么区别?
SOA SOA(Service-Oriented Architecture,面向服务的架构)是一种高层级的架构设计理念,可通过在网络上使用基于通用通信语言的服务接口,让软件组件可重复使用. 那么什么是 ...
- 简单聊聊SOA和微服务
转自:https://juejin.im/post/592f87feb123db0064e5ef7c (2017-06) 简单聊聊SOA和微服务 架构设计中的朴素主义 前两天和一个朋友聊天,他向我咨 ...
- MVC、RPC、SOA、微服务架构之间的区别
MVC.RPC.SOA.微服务架构之间的区别 一.MVC架构 其实MVC架构就是一个单体架构. 代表技术:Struts2.springMVC.Spring.Mybatis 等等. 二.RPC架构 RP ...
- SOA架构和微服务架构的区别与特点
1.SOA架构和微服务架构的区别 首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件. 1.SOA(Service Or ...
随机推荐
- Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
错误原因:常量.随机或者依赖时区的表达式不能作为分区函数. 解决方法:把ts列换成datetime类型,创建成功. CREATE TABLE T_log( id INT(11) NOT NULL AU ...
- Java序列化的几种方式
本文着重解说一下Java序列化的相关内容. 假设对Java序列化感兴趣的同学能够研究一下. 一.Java序列化的作用 有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从 ...
- 从一个实例看javascript几种常用格式的转换
要对如图一所示的左侧table的数据按照“总量”进行排序 1,在前端实现 2,数据格式为object,如图二 原创文章,转载请注明:http://www.cnblogs.com/phpgcs java ...
- php tp验证表单与自动填充函数
<?php class FormModel extends Model { // 自动验证设置 /* * 一:自动验证 自动验证的定义是这样的:array(field,rule,message, ...
- 浅谈HTTP缓存以及后端,前端如何具体实现HTTP缓存
<浅谈HTPP缓存>原版: https://juejin.im/post/5bdeabbbe51d4505466cd741?utm_source=gold_browser_extensio ...
- SQL Server 服务无法启动,错误1069解决办法
刚刚接到公司服务器上的SQL Server服务无法启动的问题需要解决,在进入“SQL Server 配置管理器”启动MSSQLServer 服务时,启动过程异常缓慢预示着“异常”的存在.果然,系统给出 ...
- 关于浏览器内核与javascript引擎的一些小知识
浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知.今天异次元就跟大家说说关于浏览器内核的一些事儿吧,好让你了解多一点稍微内在的东西. 在下面的文章中主 ...
- hfut 1287
http://acm.hfut.edu.cn/OnlineJudge/ 中文题. 区间线段树,需要剪枝.n的大小有问题. #include <iostream> #include < ...
- “线程安全的” Dictionary(TKey,TValue)
这是一篇翻译,专门介绍Dictionary线程安全问题,原文网址如下 http://www.grumpydev.com/2010/02/25/thread-safe-dictionarytkeytva ...
- RocketMq的安装使用
RocketMq的安装使用 .一.预备环境 1.系统 Windows 2. 环境 JDK1.8.Maven.Git 1.下载 1.1地址:http://rocketmq.apache.org/rele ...