技术API网关和ESB的联系与区别( 四 )



技术API网关和ESB的联系与区别
本文插图
典型场景:
1.企业数据整合或数据中心建设;
2.数据交换平台项目 , 辅助主数据管理项目做基础数据分发 。

  • 服务平台
用于微服务体系架构中的Rest服务开发、API网关、服务代理、服务监控、服务统计、服务超市 。 具体表现为分布式部署的ESB(可以放置于Docker容器中) , 实现微服务体系架构下的Rest服务开发、Rest服务组合、Rest服务代理 , 通过管理控制台注册代理其它系统提供的Rest服务 , 提供对Rest服务的运行监控、服务的启停功能、对代理服务每次调用情况的监控等 。
技术API网关和ESB的联系与区别
本文插图
【技术API网关和ESB的联系与区别】
典型场景:
1.前后端分离技术架构下 , 做为Rest服务的开发平台;
2.OpenAPI运作模式下的服务治理、监控、统计、流量控制 。
  • 平台协同
从业务系统实时获取相关数据 , 为Portal提供数据服务、BPM提供数据回写 , 协作MDM、IDM做数据分发 , 为其它平台提供数据基础和服务注册查询 。 ESB企业服务总线对SOA整合架构的实现起到支撑作用 , 数据门户中 , ESB从业务系统实时获取相关数据以XML或者JSON格式为门户平台中各图表组件、表格组件提供数据服务;业务流程重组中 , ESB负责从各异构系统中动态获取表单数据 , 以JSON方式为BPM提供业务数据 , 在流程审批操作时 , 实现业务数据状态的回写等 。
技术API网关和ESB的联系与区别
本文插图
典型场景:
1.企业业务流程重组项目支撑BPM实现应用对接机制;
2.统一门户中为图表、列表、表格等前端展现组件提供数据服务;
3.SOA综合集成项目 , 支撑各个平台 , 为其提供服务 。
区别联系分析 1ESB与API网关联系
SOA是一种理念 , 它的主要特性是面向服务的分布式计算 , 服务间松散耦合 , 支持服务的封装 , 服务注册和自动发现 , 以服务契约方式定义服务交互方式 。 但是SOA并没有定义出具体的实现方式 , 目前有两套SOA理念的实现方式:中心化和去中心化 , 这两套架构并没有优劣之分 , 还是要针对企业的根本诉求 。
SOA中心化的实现方式就是ESB , ESB的根本诉求是为了解决异构系统之间的连通性 , 通过协议转换、消息解析、消息路由把服务提供者的数据传送给服务消费者 。 AEAI ESB企业服务总线不但可以解决异构系统的集成难题 , 随着微服务的兴起 , ESB还可以开发微服务 , 设计微服务接口的限流、代理、转发以及安全等功能 , 但是ESB并不是微服务中的API网关 , 微服务可以理解为是ESB中重要的一部分 。
SOA去中心化实现方式的根本诉求是扩展性 , 实现方式就是微服务 。 分布式服务框架 , 主要有dubbox、spring cloud , 实现后端服务治理的功能 。
2ESB与API网关区别
现从ESB和API网关的使用场景、传输对象、服务契约、实现方式、交互性以及安全层次进行区别分析 。
技术API网关和ESB的联系与区别
本文插图
使用场景在2模块已经详细介绍 , 在此不做过多赘述 , 从传输对象上讲ESN传输的是XML、JSON以及消息格式 , 而网关是传递JSON对象格式 。 ESB是将自己服务和接口契约发布到服务注册中心 , 一边服务使用者可以发现和访问该服务 , 网关则是通过文档进行约束 。
在其实现方式上二者也是有很大区别的 , ESN可以通过Http、WS、MQ、Restful等方式实现 , 而网关是通过Http及Restful实现 , 较为单一 。


推荐阅读