点击关注公众号,回复“1024”获取2TB学习资源!

场景

如果我们打开支付宝首页,去看我们的余额,它会展示你的总资产,昨日收益、累计收益等信息。假如这个页面所展示的信息,都来自各个不同的系统/应用,我们通过各个接口把这些数据展示出来。如果我们现在要在前端页面展示这几项数据的话,我们应该怎么去展示呢?

在这种情况下,我们不可能让客户端与6个不同的应用/系统都一一去通信来去完成数据的展示。而是6个应用/系统之间进行彼此通信来完成调用,最后客户端只需要调用一个接口来获取数据即可,而不是与每一个应用/系统进行通信。我们的架构可能是如下的样子:

一个电商系统,比如淘宝,我们在首页会展示很多数据信息,例如:首页信息、商品信息、个人信息、推送信息等等很多。如果首页展示的数据来自100个不同的应用/系统,那么通过如上架构,我们在后端便会出现几百个乃至上千个通信的交互,那么后端的结构就会变得非常的庞大和复杂。所以在这样的架构下,我们需要对上面结构作出一些调整 ,所以我们就引入了SOA架构

图示区别

什么是SOA架构

SOA(全称:Service Oriented Architecture),中文意思为 “面向服务的架构”,你可以将它理解为一个架构模型或者一种设计方法,而并不是服务解决方案。其中包含多个服务, 服务之间通过相互依赖或者通过通信机制,来完成相互通信的,最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用 。

跟 SOA 相提并论的还有一个 ESB(企业服务总线),简单来说ESB就是一根管道,用来连接各个服务节点。为了集成不同系统,不同协议的服务,ESB 可以简单理解为:它做了消息的转化解释和路由工作,让不同的服务互联互通;

我们将各个应用之间彼此的通信全部去掉,在中间引入一个ESB企业总线,各个服务之间,只需要和ESB进行通信,这个时候,各个应用之间的交互就会变得更加的清晰,业务架构/逻辑等,也会变得很清楚。原本杂乱没有规划的系统,梳理成了一个有规划可治理的系统,在这个过程中,最大的变化,就是引入了ESB企业总线。

SOA 所解决的核心问题

1.系统集成:站在系统的角度,解决企业系统间的通信问 题,把原先散乱、无规划的系统间的网状结构,梳理成规整、可治理的系统间星形结构,这一步往往需要引入 一些产品,比如 ESB、以及技术规范、服务管理规范;这一步解决的核心问题是【有序】

2.系统的服务化:站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,通过服务的编排实现业务的快速再生。目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用;这一步解决的核心问题是【复用】

3.业务的服务化:站在企业的角度,把企业职能抽象成可复用、可组装的服务;把原先职能化的企业架构转变为服务化的企业架构,进一步提升企业的对外服务能力;前面两步都是从技术层面来解决系统调用、系统功能复用的问题。第三步,则是以业务驱动把一个 业务单元封装成一项服务。这一步解决的核心问题是 【高效】

微服务架构

微服务架构其实和SOA架构类似,微服务是在SOA上做的升华。微服务架构重点强调的一个是"业务需要彻底的组件化和服务化",原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这样的小应用和其他各个应用之间,相互去协作通信,来完成一个交互和集成,这就是微服务架构。

组件化:组件表示一个可以独立更换和升级的单元,就以PC机为例,PC中的 CPU、内存、显卡、硬盘一样,独立更换升级而不影响其他单元。如果我们把PC作为组件以服务的方式构建,那么这台PC只需要维护主板和一些必要的外部设备。CPU、内存、硬盘都是以组件方式提供服务,PC需要调用CPU做计算处理,只需要知道CPU这个组件的地址即可。

微服务的特征
  • 1.通过服务实现组件化

  • 2.按业务能力来划分服务和开发团队

  • 3.去中心化

  • 4.基础设施自动化(devops、自动化部署)

SOA 和微服务架构的差别

1.微服务去中心化,去掉ESB企业总线。微服务不再强调传统SOA架构里面比较重的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化

2.Docker容器技术的出现,为微服务提供了更便利的条件,比如更小的部署单元,每个服务可以通过类似Node或者Spring Boot等技术跑在自己的进程中。

3.SOA注重的是系统集成方面,而微服务关注的是完全分离

作者:扛麻袋的少年 

blog.csdn.net/lzb348110175/article/details/96738781

推荐阅读 点击标题可跳转

woc,又一个大佬辞职了……

神仙工具!百度网盘资源一键转存阿里云盘,YYDS

你还在 Docker 中跑 MySQL?恭喜你,好下岗了!

面试官:Nginx如何实现高并发?优化手段有哪些?

世界第三大浏览器正在消亡。。。

京东一面:请说出 ThreadLocal 的使用场景及使用方式

Spring Cloud 面试题(2021 最新版)

四张图,读懂 BIO、NIO、AIO、多路复用 IO 的区别

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。

随手在看、转发是最大的支持!

一文读懂 SOA 架构和微服务架构的区别相关推荐

  1. 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

    微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物.互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况 ...

  2. 【微服务架构】一文读懂单片到微服务架构的模式和最佳实践

    在本文中,我们将学习如何使用设计模式.原则和最佳实践来设计微服务架构.我们将使用正确的架构设计模式和技术. 在本文结束时,您将了解如何在微服务分布式架构上设计系统以实现高可用性.高可扩展性.低延迟和对 ...

  3. 一文读懂spring boot 和微服务的关系

    欢迎访问网易云社区,了解更多网易技术产品运营经验. Spring Boot 和微服务没关系, Java 微服务治理框架普遍用的是 Spring Cloud. Spring Boot 产生的背景,是开发 ...

  4. 一文看懂Java微服务架构,WEB2.0,垂直架构,分布式架构,微服务架构

    Java微服务架构 目录: 了解开发环境&生成环境 WEB1.0 & WEB2.0 垂直架构 分布式架构 微服务架构 1.了解开发环境&生产环境 1.1 开发环境 平时在写代码 ...

  5. 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式

    文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...

  6. 单体应用、SOA架构、微服务架构的对比

    目录 前言: 单体架构 SOA架构 微服务架构 前言: 随着近年来云技术的发展,越来越多的用户选择使用云技术来代替传统的IT基础设施.在云技术发展的早期,业界的关注点集中在虚拟化.分布式.存储等laa ...

  7. 系统架构的演变过程(单体应用架构、垂直应用架构、分布式SOA架构、微服务架构)

    文章目录 系统架构演变 单体应用架构 垂直应用架构 分布式SOA架构 什么是SOA 微服务架构 分布式SOA架构和微服务架构对比 系统架构演变 随着互联网的发展,网站应用的规模不断扩大,常规的应用架构 ...

  8. SOA架构和微服务架构的区别(转载)

    文章目录 1.SOA架构和微服务架构的区别 2.ESB和微服务API网关 1.ESB(企业服务总线) 2.API网关: 3.SOA架构特点: 4.微服务架构特点: 1.通过服务实现组件化 2.按业务能 ...

  9. 单体架构-->SOA架构-->微服务架构

    上诉架构图采用了分层架构,按照调用顺序,从上到下为表示层.业务层.数据访问(DAO)层.DB层.表示层负责用户体验,业务层负责业务逻辑,包括电影.订单和用户三个模块.数据访问层负责DB层的数据存取,实 ...

  10. 微服务架构 之 互联网项目架构演变过程 (单点架构,模块化架构,分布式架构,soa架构,微服务架构)

    一.什么是单点系统(传统架构)? 1.传统的SSH,SSM 架构,分为三层架构 web控制层.业务逻辑层.数据库访问层. 2. 传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH ...

最新文章

  1. 技术03期:自然语言处理NLP【分词篇】
  2. 黑客攻击发现:多个银行类APP存漏洞
  3. [PHP] 项目实践中的自动加载实现
  4. 描述项目的典型用户与场景
  5. Repeater\DataList\GridView实现分页,数据编辑与删除
  6. 为wmi执行例外_称之为例外?
  7. SQL 死锁分析(转贴)
  8. Josephus 线段数版
  9. python调用excel的宏_Python – 运行Excel宏
  10. peterson算法p0流程图_Dekker算法与Peterson算法
  11. Linux Vim编辑器的基本使用
  12. 各种门锁的内部结构图_防盗门锁锁体内部结构图是什么?
  13. ems与nms_告警处理方法、装置、nms、oss及ems的制作方法
  14. 生动实践现代农业-国稻种芯-泸州江阳:谋定产村深度融合
  15. star法则简历Android,优秀简历坚持STAR原则
  16. 做个什么网站可以赚钱,这6种网站最好赚钱!
  17. buu(前三页第二弹) RSA习题与相关知识总结
  18. 0030-用OpenCV的inpaint函数做图像的污点修复
  19. sublimelinter php 语法不起作用,sublime安装插件sublimeLinter不起作用解决办法
  20. 应用程序迁移,电脑c盘满了怎么转移到d盘?

热门文章

  1. eshop4-tomcat 安装
  2. 最新520表白网站制作HTML前端超好看 (HTML生日快乐代码)
  3. python递归求斐波那契数列前20项_用递归算法实现斐波那契数列1,1,2,3,5,8,13……的前20项,每输出5项一换行,用C++...
  4. python做测试脚本语言_实现我自己的高级测试脚本语言
  5. 毛概期末复习题库(选择题)
  6. 通往财富自由之路4--你拥有的最宝贵的财富是什么?
  7. 蓝牙mesh基础(基本概念)
  8. 阿里云账户使用手机号+验证码登录开启方法、
  9. Unity技能编辑器(特效,音效)
  10. windows平板软件开机自启动+霸屏的操作方法