ESB是什么

ESB是一个主要依赖XML消息交换的企业级消息系统,这种消息继而被智能的通过一种非集中式的架构路由和转换。

开源的ESB?

Mule,ServiceMix,Apache Synapse,JBoss ESB,Sun的OpenESB和Apache Camel等。

ESB和SOA之间的关系?

原因是这两个词包含的内涵太丰富了,无法用一两句话说清楚,并且,这个词在不同的地方含义也有所不同。

SOA----面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种通过服务整合来解决系统集成的一种思想。不是具体的技术,本质上是一种策略、思想。

ESB----企业服务总线,像一根“聪明”的管道,用来连接各个“愚笨”的节点。为了集成不同系统,不同协议的服务,ESB做了消息的转换解释与路由等工作,让不同的服务互联互通。目前ESB与SOA的确切概念依然没有。但可以明确的说SOA就是一种服务集成思想,它的不同实现方式可能差别很大,目前SOA最常见的实现方式是SCA和JBI。

看看什么是MOM?

MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。面向消息的中间件使用消息传送提供者来协调消息传送操作。MOM系统的基本元素是客户端、消息和MOM提供者,后者包括API和管理工具。MOM提供者使用不同的体系结构路由和传送消息:它可以使用集中式消息服务器,也可以将路由和传送功能分布在每个客户端上。某些MOM产品结合了这两个方法。

使用MOM系统,客户端可以进行API调用,以便将消息发送到由提供者管理的目的地。该调用会调用提供者服务以路由和传送消息。在发送消息之后,客户端会继续执行其他工作,并确信在接收方客户端检索该消息之前,提供者一直保留该消息。基于消息的模型与提供者的协调耦合在一起,使得创建松散耦合的组件系统成为可能。这样的系统可以继续可靠地工作,即使在有个别组件或连接失败时也不会停机。

由消息传送提供者协调客户端之间的消息传送的另一个优点是:通过添加管理界面,可以监视和调整性能。这样,客户端应用程序便不必关心发送、接收和处理消息之外的任何问题。对于互操作性、可靠性、安全性、可伸缩性和性能之类的问题,应当由管理员通过编码实现MOM系统来解决。

至此,我们已经介绍了使用面向消息的中间件连接分布式组件的很多优点。下面将介绍其缺点。缺点之一源自松散耦合本身。在RPC系统中,只有在被调用函数完成任务之后,才能返回调用函数。在异步系统中,调用方客户端会继续为接收方装入工作,直到处理装入工作所需的资源耗尽且被调用组件发生故障。当然,可以通过监视性能和调整消息流来尽量减少或避免这些情况,但对于RPC系统却不必这样做。有一点很重要,那就是了解每种系统的优缺点。每种系统所适合执行的任务都不同。有时,您需要结合两种系统才能完全获得所需的行为。

看一下结构使用这种结构最大的优点是它是非集中式的。将其扩展一下,将集成中介改为服务适配器,这样的功能就完全可以实现ESB了。

ESB的核心功能?

面向服务的架构 - 分布式的应用由可重用的服务组成

面向消息的架构 - 应用之间通过ESB发送和接受消息

事件驱动的架构 - 应用之间异步地产生和接收消息

协议的适配,消息的传递,智能路由,消息转换,任务/定时器,监控及可扩展的API。

ESB适用的场合?

服务化,服务虚拟化,异步通信和协议桥接。

服务化:将应用功能服务化,比如某个系统,并没有提供对外的服务接口或者提供的比较差强人意,可以考虑使用ESB。

服务虚拟化:电话的例子比较能说明问题,通常情况下你打电话只是要拨通号码,而不需要知道对方的实际位置,号码就是虚拟的服务,而实际的应用在后台进行管理。

异步通信:处理异步的消息或者异步的请求。

协议桥接:多协议之间的转换。

一般ESB具有什么功能?

1,协议适配器

2,面向消息的中间件,可以配置与任何JMS兼容的消息系统交互

3,基于XML的可靠消息传递

4,智能路由和分发,可以实现多种方式的过滤

5,消息转换服务

6,任务/定时器,可以支持类似unix/linux的cron那样的复杂精细的排程

7,服务质量提供及web中介服务,可以实现负载均衡,故障转移的规则逻辑,可以实现消息级别的划分

8,监控和管理,提供JMX监控的支持

9,可扩展的API

声明:文章属原创。转载:请注明文章出处。

原文发布于微信公众号 - 全华班(quanhuaban)

原文发表时间:2018-02-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Windows Server AppFabric:更好,更快,更便宜

微软全球副总裁Soma,负责微软公司Developer Division的工作,在博客上发布了文章Windows Server AppFabric:更好,更快,...

1788
来自专栏张善友的专栏

WCF Web Api

什么是WCF Web Api ? 越来越多的互联网应用向外开放他们的功能,例如Flickr,Twitter和Facebook,国内也掀起了开放的浪潮。处理这些社...

1957
来自专栏XAI

ActiveMQ介绍

1、ActiveMQ服务器工作模型       通过ActiveMQ消息服务交换消息。消息生产者将消息发送至消息服务,消息消费者则从消息服务接收这些消息。这些消...

1989
来自专栏walterlv - 吕毅的博客

WPF 多线程 UI:设计一个异步加载 UI 的容器

2018-09-08 12:53

771
来自专栏张善友的专栏

使用IAPIExplorer列举ASP.NET Web API

IApiExplorer是一个新的抽象层,它可以帮助获取ASP.NET Web API的结构描述。伴随该接口的还有一个默认实现——APIExplorer。 使用...

1656
来自专栏Golang语言社区

golang插件化方案

业务线的活动,每一次新活动都做独立项目开发,有大量重复代码,并且浪费数据服务的连接资源;排序服务也许要经常添加业务代码,目前是停服务发布……这些场景为了开发维护...

1162
来自专栏我就是马云飞

JJEvent 一个可靠的Android端数据埋点SDK

注:代码已经经过线上项目验证, 横向Google统计对比,统计数据无丢失,性能稳定.

814
来自专栏python爬虫实战之路

知乎模拟登陆

经常在简书上写作,写完后再发布到其他网站,非常麻烦,所以准备搞一下自动发布文章的工具。那么第一步先要模拟登陆几个网站。今天先从知乎开始。

843
来自专栏JAVA高级架构

浅谈高并发解决方案

摘要: 高并发一直是然个人头疼的问题;然而,其解决方式则是一套组合策略,由整体入手,逐步分析,逐步解决部分问题,进而解决所有问题;就像一支庞大的输水管道,不断的...

3026
来自专栏张善友的专栏

基于SQL Server 2008 Service Broker构建企业级消息系统

注:这篇文章是为InfoQ 中文站而写 1、引言 Microsoft 在SQL Server 2005引入了服务代理 (Service Broker 简称SSB...

1945

扫码关注云+社区