企业服务总线ESB的分享

概念

ESB全称为Enterprise Service Bus,指的是传统 中间件技术 与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。

背景

ESB在企业服务中还是占据了特别重要的席位,很早以前企业的资源管理可能一个SAP系统就搞定了,但是随着公司业务越来越庞大,需要的系统支持就越来越多。比如生产制造的MES系统、物流拉动的LES、供应商管理的SRM、客户管理的CRM、仓储管理的WMS、质量管理的QMS、财务管理的ERP、产品生命周期管理的PLM等,因为各家厂商的技术协议都存在差异,如果公司想要打破各系统间数据的孤岛,要是每家的标准都不一样,光接个数据估计就得花很多的精力和预算,这个时候就需要一个统一的标准。

简述

简单的说ESB其实就是将双边系统(生产端、消费端)的数据通过报文的时候进行传递,再将传递的过程可视化,可以监控每次接口调用的结果成功与否,还是能看到每次调用过程中传输的数据格式。例如:1、A系统传递给B系统的时候失败了,ESB就可以监控到是谁在什么时候由于什么原因导致接口失败;2、A系统传递给B系统时数据内容导致B系统处理失败,ESB通过报文就可以看出错误的原因。

IT架构的变化

ESB的好处

1、能够实现不同服务之间的通信和整合,是各应用系统之间枢纽

2、能够消除不同应用之间的技术差异,适配不同的协议、报文

3、通过服务平台的建立,对消息可以有效的监管

名称介绍

产品比较

以上从某处截图的,我用过就两款,一款是ServiceMix(自开发),还有一款是S-ESB(是一家供应商基于IBM WebSphere ESB开发的)。ServiceMix主要体现在路由转发功能,S-ESB是基于MQ的消息队列。高并发下,基于消息队列的方式比较好,不会产生拥堵现象。但是如果希望开源、想做更多自定义的功能、并发量不大,ServiceMix还是挺不错的选择。比如消息发送失败,想要ESB重新发送,因为消费方重新产生数据可能需要做大量的工作,基于ServiceMix的路由转发功能就很容易实现。如果说要让ESB在MQ队列上重新生产消息,难度还是挺大的。

举个简单的公司员工定外卖的例子说明这两种产品的不同

1、ServiceMix:外卖送到前台后,前台小姐姐负责把外卖一个个送到员工手上,如果送错了,她可以再拿回来重新送

2、MQ:外卖送到前台后,前台小姐姐在微信群里说***的外卖到了,他们自己来前台领取,外卖很多的时候就体现了高效

架构案例

只是分享下供大家参考,可能会有讲的不专业的,望大家指正和补充!

发布于 2020-08-06 22:54