看资料时,时不时会出现ESB这个词,但是ESB到底是什么东西?
以下为自己查了很多资料,自己的理解,不对的地方希望指正。
看了很多解释,都是在说ESB是企业服务总线,也有各种图来解释ESB,大致意思是说ESB就是集成公司内不同系统的理念,也就是说大公司的系统很多,各个系统相互进行通讯如果不加约束就会非常乱,像一个蜘蛛网。ESB这时就是一个管家,不同系统进行通讯都要找他,要经过ESB的转发才会进行不同系统的通讯(网上有很多例子,就不画图了)。
等等~ 这东西不就是微服务中的网关吗???网关的作用就是整合不同service的接口,暴露出一个统一API提供给UI层(也可以说是BFF-backend for frontend层),之前都有ESB了怎么技术发展到这时怎么又重新搞了一个名字。
这时需要出来另外一个名词,大家也见过,SOA(面向服务的架构)。SOA只是一个思想,不止在IT界有用,比如公司的不同职能部门,都是单独的一个服务,合起来才能支撑公司的运转,对于这种单独并且各自有各自职能的架构就叫SOA。
用在IT这SOA的实现方式分为两种:
- ESB
- 微服务
一个是想收集,一个是想分散,怎么处理?
其实很简单,可以这样想
系统1和系统2可以用微服务,一般大型公司中,或者说是传统行业的公司有很多系统,可能也是不同team维护的,不同的team有自己的老板,所以他们各自可以来一套微服务。不同的系统可能因为用了不同的技术,不同的框架,不同的语言,但是在公司业务层面还是要整合系统的,所以这时候可以用ESB来解决。
使用的技术:
微服务可以用spring cloud,dubbo等来进行微服务的拆分;
ESB 可以用WSO2来收集不同系统的API,方便其他系统调用。
所以前面说的ESB和网关的关系是不同的场景而已。