+
80
-

ESB与SOA有什么不同?

请问ESB与SOA有什么不同?

网友回复

+
0
-

一、SOA

SOA 全称是: Service Oriented Architecture,中文释义为 “面向服务的架构”它是一种设计理念,其中包含多个服务, 服务之间通过相互依赖最终提供一系列完整的功能。各个服务通常以独立的形式部署运行,服务之间 通过网络进行调用。架构图如下:

服务之间可以相互调用和嵌套,所有的服务都要在服务中心注册,通过服务发现来相互调用,最终实现服务输出。

二、 ESB esb全称enterprise service bus(企业服务总线),简单来说 ESB 就是一根管道,用来连接各个服务节点。ESB的存在是为了集成基于不同协议的不同服务,ESB 做了消息的转化、解释以及路由的工作,以此来让不同的服务互联互通;

为什么叫总线,因为所有的数据解释返回都要经过esb这根总线,esb主要总线形式的消息处理机制,提供各个服务的endpoint之间沿着消息总线有一定的顺序关系(当然有些处理流程只需要部分服务片段而无需走完所有总线流程),各endpoint之间是直接跟总线打交道,而非各自直接通信,前一个服务提供者一般并不知道也不需要知道下一个服务和处理情况(无直接的交互)。

三、微服务 微服务架构和 SOA 架构非常类似,微服务只是的 SOA 升华,只不过微服务架构强调的是“业务需要彻底的组件化及服务化”,原单个业务系统会被拆分为多个可以独立开发、设计、部署运行的小应用。这些小应用间通过服务化完成交互和集成。 组件表示的就是一个可以独立更换和升级的单元,就像 PC 中的 CPU、内存、显卡、硬盘一样,独立且可以更换升级而不影响其他单元。若我们把 PC 中的各个组件以服务的方式构 建,那么这台 PC 只需要维护主板(可以理解为ESB)和一些必要的外部设备就可以。CPU、内存、硬盘等都是以组件方式提供服务,例如PC 需要调用 CPU 做计算处理,只需知道 CPU 这个组件的地址就可以了。 微服务的特征 1. 通过服务实现组件化 2. 按业务能力来划分服务和开发团队 3. 去中心化 4. 基础设施自动化(devops、自动化部署)

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

参考文章:https://blog.csdn.net/keizhige/article/details/80999780

我知道答案,我要回答