当前位置:网站首页>面试官:SOA 和微服务的区别?这回终于搞清楚了!
面试官:SOA 和微服务的区别?这回终于搞清楚了!
2022-08-03 11:21:00 【androidstarjack】
点击关注公众号,架构好文及时送达
场景
一个电商系统,比如淘宝,我们在首页会展示很多数据信息,例如:首页信息、商品信息、个人信息、推送信息等等很多。如果首页展示的数据来自100个不同的应用/系统,那么通过如上架构,我们在后端便会出现几百个乃至上千个通信的交互,那么后端的结构就会变得非常的庞大和复杂。所以在这样的架构下,我们需要对上面结构作出一些调整 ,所以我们就引入了SOA架构。
图示区别
什么是SOA架构
SOA(全称:Service Oriented Architecture),中文意思为 “面向服务的架构”,你可以将它理解为一个架构模型或者一种设计方法,而并不是服务解决方案。其中包含多个服务, 服务之间通过相互依赖或者通过通信机制,来完成相互通信的,最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用 。
跟 SOA 相提并论的还有一个 ESB(企业服务总线),简单来说ESB就是一根管道,用来连接各个服务节点。为了集成不同系统,不同协议的服务,ESB 可以简单理解为:它做了消息的转化解释和路由工作,让不同的服务互联互通;
我们将各个应用之间彼此的通信全部去掉,在中间引入一个ESB企业总线,各个服务之间,只需要和ESB进行通信,这个时候,各个应用之间的交互就会变得更加的清晰,业务架构/逻辑等,也会变得很清楚。原本杂乱没有规划的系统,梳理成了一个有规划可治理的系统,在这个过程中,最大的变化,就是引入了ESB企业总线。
点击关注公众号,架构好文及时送达
SOA 所解决的核心问题
1.系统集成:站在系统的角度,解决企业系统间的通信问 题,把原先散乱、无规划的系统间的网状结构,梳理成规整、可治理的系统间星形结构,这一步往往需要引入 一些产品,比如 ESB、以及技术规范、服务管理规范;这一步解决的核心问题是【有序】
2.系统的服务化:站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,通过服务的编排实现业务的快速再生。目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用;这一步解决的核心问题是【复用】
3.业务的服务化:站在企业的角度,把企业职能抽象成可复用、可组装的服务;把原先职能化的企业架构转变为服务化的企业架构,进一步提升企业的对外服务能力;前面两步都是从技术层面来解决系统调用、系统功能复用的问题。第三步,则是以业务驱动把一个 业务单元封装成一项服务。这一步解决的核心问题是 【高效】
微服务架构
微服务的特征
SOA 和微服务架构的差别
1.微服务去中心化,去掉ESB企业总线。微服务不再强调传统SOA架构里面比较重的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化
2.Docker容器技术的出现,为微服务提供了更便利的条件,比如更小的部署单元,每个服务可以通过类似Node或者Spring Boot等技术跑在自己的进程中。
3.SOA注重的是系统集成方面,而微服务关注的是完全分离
作者:扛麻袋的少年
来源:blog.csdn.net/lzb348110175/article/details/96738781
今日好文推荐
GET 和 POST请求的本质区别是什么?看完觉得自己太无知了...
MyBatis批量插入数据你还在用foreach?你们的服务器没崩?
点个在看少个 bug
边栏推荐
猜你喜欢
complete knapsack problem
跨链桥协议 Nomad 遭遇黑客攻击,损失超 1.5 亿美元
Classical Architecture and Memory Classification of Embedded Software Components
CADEditorX ActiveX 14.1.X
Babbitt | Metaverse daily must-read: Players leave, platforms are shut down, and the digital collection market is gradually cooling down. Where is the future of the industry?...
LyScript 实现对内存堆栈扫描
shell编程-测试
Web Server 设置缓存响应字段的一些推荐方案
多态详细讲解(简单实现买票系统模拟,覆盖/重定义,多态原理,虚表)
科普大佬说 | 黑客帝国与6G有什么关系?
随机推荐
使用.NET简单实现一个Redis的高性能克隆版(一)
试题G:单词分析 ← 第十一届蓝桥杯大赛第二场省赛赛题
字符串本地化和消息字典(二)
ABAB-740新语法
[Output each bit of an integer, from high to low.With and without recursion]
多态详细讲解(简单实现买票系统模拟,覆盖/重定义,多态原理,虚表)
Traceback (most recent call last): File
How to use outside the PHP command in the container
图新地球为什么很模糊,白球、看图、下载问题深度剖析
C - 为什么指针常常初始化为 NULL?
thymeleaf中的日期格式转化
科普大佬说 | 黑客帝国与6G有什么关系?
LP流动性挖矿DAPP系统开发丨流动性挖矿功能原理及说明
LyScript 实现对内存堆栈扫描
Simple implementation of a high-performance clone of Redis using .NET (1)
[错题]电路维修
How to make self-introduction
SmobilerService 推送实现
LeetCode——622.设计循环队列
Skills required to be a good architect: How to draw a system architecture that everyone will love?What's the secret?Come and open this article to see it!...