首先介绍了消息中间件的原理。然后介绍了目前流行的开源消息中间件产品,并实现。
中间件的定义
中间件在操作系统软件,网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供执行于开发的环境。帮助用户灵活、高效的开发和集成复杂的应用软件。
IDC对中间件的定义为:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这样的软件在不同的技术之间共享资源,中间件定位于客户机server的操作系统之上,管理计算机资源和网络通信。
因而中间件是指一类软件。是基于分布式处理的软件,最突出的特点是其网络通信功能。
也可觉得中间件是位于平台和应用之间的通用服务。这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台。能够有符合接口和协议的多种实现。
消息中间件的原理
1、消息中间件简介
消息中间件能够即支持同步方式。又支持异步方式。异步中间件比同步中间件具有更强的容错性,在系统故障时能够保证消息的正常传输。
异步中间件技术又分为两类:广播方式和公布/订阅方式。因为公布/订阅方式能够指定哪种类型的用户能够接受哪种类型的消息,更加有针对性。其实已成为异步中间件的非正式标准。眼下主流的消息中间件产品有IBM的MQSeries。BEA的MessageQ和Sun的JMS等
2、消息中间件原理
消息中间件适用于须要可靠的数据传送的分布式环境。採用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件。完毕对应的操作。发送者将消息发送给消息server。消息server将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性。实现应用程序之间的协同。其长处在于可以在客户和server之间提供同步和异步的连接。而且在不论什么时刻都可以将消息进行传送或者存储转发。这也是它比远程过程调用更进一步的原因。
灵活性的还有一方面体如今。当应用程序A发送其消息时。应用程序B甚至能够不处于运行状态。
MOM将保留这个消息,直到应用程序B開始运行并试着检索消息为止。这还防止了应用程序A由于等待应用程序B检索消息而出现堵塞。 这样的异步通信要求应用程序的设计与如今大多数应用程序不同,只是,对于时间无关或并行处理,它可能是一个极事实上用的方法
消息中间件与分布式对象调用的比較
虽然面向对象的中间件是一种非常强大的规范被广泛应用,可是面对大规模的复杂分布式系统。这些技术也显示出了局限性:
1.同步通信:客户发出调用后,必须等待服务对象完毕处理并返回结果后才干继续运行。
2.客户和服务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常执行,假设因为服务对象崩溃或网络故障导致客户的请求不可达。客户会接收到异常。
为了解决这些问题,出现了面向消息的中间件,它较好地攻克了以上的问题。
消息中间件作为一个中间层软件,它为分布式系统中创建、发送、接收消息提供了一套可靠通用的方法。实现了分布式系统中可靠的、高效的、实时的跨平台传输数据。消息中间件降低了开发跨平台和网络协议软件的复杂性,它屏蔽了不同操作系统和网络协议的详细细节,面对规模和复杂度都越来越高的分布式系统。消息中间件技术显示出了它的优越性:
1.採用异步通信模式:发送消息者能够在发送消息后进行其他的工作,不用等待接收者的回应,而接收者也不必在接到消息后马上对发送者的请求进行处理。
2.客户和服务对象生命周期的松耦合关系:客户进程和服务对象进程不要求都正常执行,假设因为服务对象崩溃或者网络故障导致客户的请求不可达,客户不会接收到异常。消息中间件能保证消息不会丢失。
消息中间件的传递模式
点对点模型用于消息生产者和消息消费者之间点到点的通信。消息生产者将消息发动到由某个名字标识的特定消费者。这个名字实际上相应于消息服务中的一个队列(Queue),在消息传动给消费者之前它被存储在这个队列中。
队列可以是持久的。以保证在消息服务出现问题时仍然可以传递消息。
2. 公布-订阅模型(Pub/Sub)
下图展示了公布和订阅模型:
简介WebLogic的特点
1) 通过使用管理控制台设置JMS配置信息。
2) 支持消息的多点广播;
3) 支持持久消息存储的文件和数据库;
4) 支持XML消息,动态创建持久队列和主题。
版权声明:本文博主原创文章,博客,未经同意不得转载。