系统架构设计师 - 单体架构、SOA架构、微服务架构
文章目录
- 横向对比
- SOA
- 设计原则
- 主要技术
- UDDI 统一描述发现集成
- SOAP 简单对象访问协议
- WSDL web服务描述语言
- BPEL 业务过程执行语言
- REST 表述性状态转移
- 实现方法
- WebService
- ESB
- 服务注册表
- 主要问题
横向对比
单体架构 | SOA架构 | 微服务架构 | |
---|---|---|---|
特点 | 复杂性高、技术债务逐渐上升、部署速度越来越慢、扩展能力受限、阻碍技术创新 | ||
组件大小 | 单体,大 | 按服务分割成大块的逻辑 | 小块业务逻辑 |
耦合 | 紧耦合 | 较松耦合 | 松耦合 |
公司架构 | 单体 | 小型、功能交叉的团队 | |
管理 | 着重中央管理 | 分散管理 | |
目标 | 确保应用交互 | 新功能快速拓展 | |
SOA
一种粗粒度、松耦合的服务架构,每个功能被封装为独立的服务,服务间通过定义精确良好的接口进行通信,客户端可以按一定顺序调用这些服务形成业务逻辑。服务间交互不必关注各自的实现细节,和部署的操作系统环境。SOA中单个服务是基于ODD设计的,但总体上是面向服务的。
设计原则
粗粒度:服务能划分就划分到一起
松耦合:服务间通过接口进行交互,服务实现实现服务接口,
内包含模块化:高度内聚
定义精确稳定:服务的定义要精确,防止错误使用,也要稳定
主要技术
UDDI 统一描述发现集成
服务发布查找规范。定义服务信息注册规范,以便被需要该服务的用户查找并使用。定义服务概念,定义编程接口,用户可根据该接口发布自己的服务,或发现需要的服务以满足业务场景。包括内容:数据模型(描述服务发布查找的相关内容)、API(提供标准的服务发布、服务查找的API接口)、注册服务(注册中心角色,服务请求者和服务提供者的纽带)
SOAP 简单对象访问协议
分布式环境下,基于XML的信息交互协议,定义服务请求者和服务提供者的信息通讯规范。通过XML格式化信息,通过HTTP承载信息,包括:封装(封装一个框架以描述消息发送者、消息提供者、消息具体内容、接收后处理方式)、编码规则(定义序列化机制,用以传输应用间交互的数据类型的实例)、RPC(RPC定义远程过程调用和应答协议)、绑定(绑定底层框架协议,以传输SOAP封装)。SOAP消息内容包括:封装(必选,封装顶层元素)、SOAP头(可选,接收后处理方式等元素)、SOAP体(实际传递消息内容的容器)
WSDL web服务描述语言
描述WEB服务和如何与WEB服务进行通讯的XML语言。描述了三个内容:服务功能、服务数据格式和协议、协议地址端口地址。分为服务接口定义和服务实现定义两种。
BPEL 业务过程执行语言
基于XML的业务过程编程语言,每个业务过程是由WEB服务实现,可以通过排序、组合等自上而下的实现面向服务架构。多个WEB服务可以组合成一个大的组织结构,可以为视为一个WEB服务被使用或参与更大的组织结构。
REST 表述性状态转移
基于HTTP和XML的WEB通讯技术,能够降低开发难度,提高伸缩性。三个关注点分离(资源、资源的表示、资源的操作)。所有的事物都抽象为资源,每个资源都有唯一标志,通过标准统一的操作接口对资源进行操作,对资源操作不会修改资源状态。
实现方法
WebService
分为三个角色,服务提供者(服务所有者,负责定义并实现服务。通过WSDL描述服务特征,通过UDDI将服务发布到注册中心,以便被查找使用)、服务请求者(服务使用则,通过UDDI在注册中心查找相应服务,或直接通过WSDL查找服务特征,然后通过SOAP绑定服务进行调用。可以是服务或浏览器)、服务注册中心(服务提供者和服务发现者的纽带,服务提供者发布,服务请求者查找,可选角色,当静态绑定时,可以没有注册中心)
ESB
传统中间件技术和XML、WEB服务等结合的产物,主要支持异构系统集成,具备复杂数据的传输能力,支持基于内容的路由和增强,并提供统一的一致的接口。
服务注册表
主要用于SOA设计,通过策略执行点,完成服务的注册,以便被查找并使用。
主要问题
服务设计和划分粒度、
SOA服务流程组织、
SOA与原系统集成
SOA
系统架构设计师 - 单体架构、SOA架构、微服务架构相关推荐
- Java架构师-微服务:微服务架构【单体部署 --改造--> 微服务架构】【分布式:分散压力;微服务:分散能力】【RESTFul+Docker+K8S、SpringCloud】
一.微服务概述 微服务架构是团队面对互联网产品爆发式增长的最优选择,要解决的是快速迭代.高可靠和高可用等问题,把复杂度很高的产品拆分成一些较小的模块,并遵循康威定律,每一个模块用5-9个小团队来维护, ...
- 单体架构、SOA、微服务架构
1. 单体架构的问题 在Java Web开发中,web工程一般会被打包为war包部署在Servlet容器中,如Tomcat.比较简单,开发和调试部署都很方便. 但是当用户量大时,并发量高时,一 ...
- SOA和微服务架构的区别?
知乎用户 289 人赞同了该回答 谢多人邀请,其实前面几位的回答已经差不多了,在这里仅谈下自己的简单总结. 微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多 ...
- SOA和微服务架构的区别
SOA和微服务架构的区别? 1 条评论 分享 默认排序按时间排序 10 个回答 203赞同 反对,不会显示你的姓名 知乎用户 大型电信行业SOA实施经验,SOA规划咨询,- 203 人赞同 谢多人邀请 ...
- 万字长文解析:分布式架构、SOA、微服务架构、API网关、ESB服务总线架构之间的关联及演进
1架构演进 架构十五年:改变的是形态,不变的是目的 业务驱动架构形态变化 过去十几年,随着互联网发展以及业务的多样化,系统的架构也在不断发生变化,总体上来说大体经历了从单体应用架构-垂直应用架构-分布 ...
- 【服务化架构】SOA和微服务架构、灵活架构
文章目录 一.SOA ESB 二.微服务 微服务和Docker 三.关于 SOA和微服务关系 的几种观点 四.QA 关于ESB的单点故障 关于微服务的去中心化 和 API网关 五.灵活架构 导读 SO ...
- “逃离”单体,GitHub的微服务架构实践
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 本文介绍 Git ...
- 理解 SOA和微服务架构
网上有个小段子,专门比较SOA和微服务架构区别的,相比其他抽象的解释,更让人容易理解.我把其他人的一些解释合并一下罗列如下: A:菜菜哥,我最近需要做一个项目,老大让我用微服务的方式来做 B:那挺好呀 ...
- 微服务架构技术调研<3>--微服务架构实践
引言: 由于公司商业上有实打实的需求和场景,倒逼产品开始思考架构升级,以适应这种商业环境的快速变化.架构师在进行技术选型或者架构升级前,需要做大量技术调研.竞品分析,<微服务架构综述>则是 ...
- python微服务框架_微服务架构框架有哪些?常用微服务架构介绍
小伙伴们知道常用的微服务架构框架有哪些吗?上回我们介绍了一些常用的微服务架构设计模式,这次我们就来了解一下一些常用的微服务架构框架吧. 一.Dubbo Dubbo框架是由阿里巴巴开发的开源式的分布式服 ...
最新文章
- 文件解析库doctotext源码分析
- php判断日期为空值,php判断值是否为空实例代码
- 【SQL】SQL语句大全(XIMND导图梳理)
- 在UE中自由绘制基本图元的几种方法
- Java 8中获取参数名称
- C++——多进程并发与多线程并发
- 2021年北京理工大学ACM CLUB清明节组队训练赛
- NLP --- 隐马尔可夫HMM(第三个问题详解及HMM的应用)
- 用Python词云看电影--生而为人,对不起
- 如何获得学生版本的免费eviews9
- 苹果智能家居的未来之路
- 计算机文化基础习题及答案
- unity5.0安卓开发环境配置
- 家庭mesh组网方案
- For 循环优化,提升效率
- Latex 中如何使插图的位置不跑到开头而紧跟插入的文字后
- NLP(词向量、word2vec和word embedding)
- 【电子技术】如何抑制共模、差模噪声?
- 基于YOLOV3的通用物体检测项目实战---(5)利用DarkNet框架进行YOLOV3模型训练实操(笔记)
- 数学物理方法·例题①数学物理方法简明教程_林福民(第一版)1.1复数与复平面例题