SOA架构和微服务架构的区别,终于说清楚了

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

SOA架构和微服务架构的区别,终于说清楚了

**(2)API网关:**API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。**通常,网关也是提供REST/HTTP的访问API。**服务端通过API-GW注册和管理服务。

SOA架构和微服务架构的区别,终于说清楚了

SOA架构和微服务架构的区别,终于说清楚了

3.SOA架构特点:

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

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

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

SOA架构和微服务架构的区别,终于说清楚了

4.微服务架构特点:

(1)通过服务实现组件化

开发者不再需要协调其它服务部署对本服务的影响。

(2)按业务能力来划分服务和开发团队

开发者可以自由选择开发技术,提供 API 服务

(3)去中心化

每个微服务有自己私有的数据库持久化业务数据

每个微服务只能访问自己的数据库,而不能访问其它服务的数据库

技术学习总结

学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。

最后面试分享

大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!

波!

[外链图片转存中…(img-ovx2xLNY-1714446968640)]

[外链图片转存中…(img-5FpNJzF1-1714446968640)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

### SOA 架构微服务架构区别比较 #### 定义对比 SOA(面向服务的架构)是一种软件设计模式,旨在通过定义良好的接口服务契约来促进不同应用程序间的互操作性。而微服务架构则更进一步,不仅限于服务间通信的概念,而是将整个应用分解成一系列小型、独立的服务,每个服务专注于单一业务功能[^1]。 #### 组件粒度 在SOA中,服务通常是较大规模的企业级服务,可能涉及多个业务流程;而在微服务架构里,服务被细分为更加具体的小型单元,即所谓的“微”服务,它们各自负责特定的功能模块,并能够单独部署扩展[^2]。 #### 数据管理方式 对于SOA而言,数据往往集中存储在一个或少数几个大型数据库中,由各个服务共享访问权限;相比之下,在微服务环境中实现了数据去中心化的理念——各微服务拥有自己私有的持久化机制,可以选择最适合其需求的数据管理存储解决方案(如关系型数据库SQL或是非关系型数据库NoSQL),从而减少了跨服务调用时产生的依赖性复杂度[^3]。 #### 通信协议 传统意义上的SOA倾向于使用重量级的消息传递标准技术栈,比如Web Services (SOAP), XML-RPC等;然而现代微服务体系结构偏好轻量级RESTful API以及异步消息队列作为主要通讯手段,这有助于提高系统的灵活性并降低延迟时间。 #### ESB vs API Gateway 企业服务总线(Enterprise Service Bus, ESB)是SOA中的核心概念之一,用于连接不同类型的应用程序服务,提供中介层来进行转换、路由等功能。但在微服务世界里,API网关承担起了类似的角色,不过它的职责更为聚焦于入口流量控制、负载均衡等方面的工作,而不是像ESB那样试图成为所有内部交互的核心枢纽。 ```python # 示例代码展示如何配置简单的Flask RESTful API服务器 from flask import Flask app = Flask(__name__) @app.route('/api/v1/resource', methods=['GET']) def get_resource(): return {"message": "This is a microservice endpoint"} if __name__ == '__main__': app.run(debug=True) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值