SOA----面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种通过服务整合来解决系统集成的一种思想。不是具体的技术,本质上是一种策略、思想。
ESB----企业服务总线,像一根“聪明”的管道,用来连接各个“愚笨”的节点。为了集成不同系统,不同协议的服务,ESB做了消息的转换解释与路由等工作,让不同的服务互联互通。
SOA主要是基于request、response的消息通讯机制的。它的设计适合同步通讯,但是并不大适合异步的通信。 所以我们还需要EDA。
EDA使用的是publsih/subscibe的消息通讯模式,它适合异步的消息发布和消息订阅。它与SOA注重的是不同的方面。所以SOA和EDA是互补的关系。而不是取代的关系。
那么对于一个企业,它同时需要SOA的同步机制,也需要EDA的异步机制,应该如何做呢?
这个时候我们就需要ESB了。