各位老铁们好,相信很多人对面试官问:SOA架构和微服务架构有什么区别?都不是特别的了解,因此呢,今天就来为大家分享下关于面试官问:SOA架构和微服务架构有什么区别?以及的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
2、微服务架构:其实和SOA架构类似。微服务是SOA的升华。微服务架构强调的重点之一是“业务需要完全组件化、服务化”。原有的单一业务体系将被拆除。它被分成多个可以独立开发、设计和运行的小应用程序。这些小应用之间的交互和集成都是通过服务来完成的。
微服务架构=美团即时物流的分布式系统架构设计是80%SOA服务架构思维+100%组件架构思维+80%领域建模思维
ESB和微服务API网关
1.ESB(企业服务总线)
简单来说,ESB就是一个用于连接各个服务节点的管道。为了集成来自不同系统和协议的服务,ESB 进行消息的转换、解释和路由,以允许不同的服务互连;
2.API网关
API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度来看,它类似于门面模式。封装了系统的内部架构,并为每个客户端提供了定制的API。它还可能具有其他职责,例如身份验证、监控、负载平衡、缓存、请求分片和管理以及静态响应处理。
API网关方式的核心点是所有客户端和消费者都通过统一网关访问微服务,所有非业务功能都在网关层处理。通常,网关还提供REST/HTTP访问API。服务器通过API-GW注册和管理服务。
SOA架构特点
系统集成:从系统角度解决企业系统间的通信问题,将系统间原来分散、无规划的网状结构组织成系统间规则、可管理的星形结构。这一步往往需要引入一些产品,比如ESB,以及技术规范和服务管理规范;这一步解决的核心问题是【有序】
系统服务化:从功能角度,将业务逻辑抽象为可复用、可组装的服务,通过服务编排实现业务的快速再生。目的是将原有固有的业务功能转变为一般的业务服务。实现业务逻辑的快速复用;这一步解决的核心问题是【复用】
业务服务化:从企业角度,将企业功能抽象为可复用、可组装的服务;将原有的智能企业架构转变为服务型企业架构,进一步提升企业对外服务能力; “前面这两个步骤都是从技术层面解决系统调用和系统功能复用的问题。”第三步,根据业务驱动,将业务单元封装成服务。这一步解决的核心问题是【效率】
微服务架构特点
1. 通过服务实现组件化
开发人员不再需要协调其他服务部署对该服务的影响。 2、根据业务能力划分服务和开发团队
开发者可以自由选择开发技术并提供*API*服务3. 去中心化
每个微服务都有自己的私有数据库来保存业务数据。每个微服务只能访问自己的数据库,无法访问其他服务的数据库。在某些业务场景中,需要在一次事务中更新多个数据库。这种情况下,你不能直接访问其他微服务的数据库,而是对微服务进行操作。数据的去中心化进一步降低了微服务之间的耦合,不同的服务可以使用不同的数据库技术(SQL、NoSQL等)。在复杂的业务场景中,如果包含多个微服务,通常是在客户端或者中间层(网关)处理。 4.基础设施自动化(devops、自动化部署)
Java EE部署架构通过表示层打包WAR,业务层划分成JAR,最后部署为一个大的EAR包。微服务打开了这个黑匣子,将应用程序一一拆分为单独的服务,并应用Docker技术。依赖于任何服务器和数据模型,是一个可以通过自动化独立部署的全栈应用程序。
每个服务都在自己的进程中运行,并通过轻量级通信机制(通常基于HTTP 资源API)进行联系。这些服务是基于业务能力构建的,可以实现集中管理(因为服务太多,没有集中管理就无法进行DevOps啦)。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/116265.html
用户评论
颓废i
面试这题简直太经典了!之前面试的时候也遇到过,当时紧张得只记得两个字母意思,啥 SOA 还有 微 服 架构,就说了一大堆乱七八糟的。还好现在自己研究了一下,这次要是又被问到,我肯定能说得清清楚楚。
有8位网友表示赞同!
傲世九天
这个问题我觉得的关键在于 “区别” 两字,SOA 着重于服务调用方式和解耦,而微服务的重点在降低系统整体复杂度以及每个服务的独立性、可维护性。 而且我还觉得 SOA 最适合大型企业,而微服务更适合迭代速度快的公司。
有10位网友表示赞同!
青袂婉约
这题简直是面试必考啊!不过别慌,只要把SOA架构和微服务架构的异同点弄清楚,加个通俗易懂的比喻就能回答得很好。比如 SOA 可以理解成一个大型拼图,而微服务则像是一些独立的小拼图
有10位网友表示赞同!
箜明
这篇文章写的不错,帮我解决了面试中经常碰到的难题!原来SOA架构和微服务架构的区别在于服务的粒度、部署方式以及耦合性!
有10位网友表示赞同!
断秋风
感觉有些文章说的有点抽象,我不是很明白SOA架构 和微服务架构的区别到底在哪里。 可以写点具体代码例子出来解释一下吗?更容易理解!
有8位网友表示赞同!
微信名字
面试官问这个问题主要是想考察你对软件架构的理解程度和表达能力吧! 仔细想想, SOA 侧重于业务逻辑的解耦,而微服务则是更细粒度,独立部署,这样才真的能敏捷发展。
有10位网友表示赞同!
我要变勇敢℅℅
SOA 架构 和 微 服务 架构各有优缺点,要根据实际项目需求来选择适合的架构模式,不能简单的认为哪个更好, 只是看这个项目更适合什么!
有18位网友表示赞同!
一笑傾城゛
这篇文章写得真好,我很清晰地理解了 SOA 架构和微服务架构的区别。以前总是觉得这两个概念很模糊,现在终于明白了!
有12位网友表示赞同!
放肆丶小侽人
学习一下这些架构知识很重要啊! 我目前刚毕业准备找工作,这类面试问题肯定是要掌握的!
有14位网友表示赞同!
话扎心
我觉得SOA和微服务的差别比较微妙,特别是对于一些不太大型的项目,两者区别可能并不明显。但是对于超大规模平台来说,微服务的弹性和可维护性还是更强一些。
有8位网友表示赞同!
愁杀
文章说的对,选择架构模式的时候要考虑很多因素,包括项目的规模、复杂度、开发团队的经验等等. 不能盲目跟风!
有5位网友表示赞同!
微信名字
SOA 架构就像是一群精干的工作者,他们彼此合作完成一个更大的任务。而微服务架构更像是独立的小队,每个小队都有自己的职责,一起组成了一个高效的组织.
有19位网友表示赞同!
凉城°
以前觉得 SOA 架构就那么一说,没想到还有这么多细节啊 ! 这个文章真是太棒了,让我对架构设计有了更深层的认识!
有12位网友表示赞同!
残留の笑颜
我觉得这篇文章写的太简单化了,SOA和微服务之间的关系远远不止这些。 还要考虑安全、监控、部署等等问题.
有13位网友表示赞同!
几妆痕
学习能力很重要啊! 看到很多人都能说出 SOA 和微服务的区别, 我也要赶紧加紧学习,不然面试会被淘汰!
有15位网友表示赞同!
她的风骚姿势我学不来
我觉得这篇文章太简略了,并没有深入分析 SOA 架构和微服务架构的不同特点。我希望作者能够提供更加详细的讲解,例如具体的应用场景、优缺点比较等等!
有8位网友表示赞同!
别留遗憾
SOA 和微服务之间的差异,关键还是在于技术细节和设计理念上的区别。比如数据一致性、服务发现等都是需要考虑的问题。
有18位网友表示赞同!