快速业务通道

利用JMS建立消息传递系统 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

利用JMS建立消息传递系统

时间:2010-05-21

在开始之前需要说明,为了理解本文,我们希望读者拥有Java编程的相当坚实的基础。我们将试图尽可能简单地解释什么是JMS,但是在你能够建立自己的程序并正确地理解它们之前,你需要有一些使用JNDI开发实际应用程序的经验。

JMS(Java消息服务)是一个消息交换标准,它允许使用J2EE应用程序组件建立、发送、接收和读取消息。它假设分布式通讯拥有自由(free)的连接、是可靠的(reliable)和异步的(asynchronous)。

Exchange(交换)系统

消息交换反映了程序组件或应用程序之间的一种交互作用。消息交换系统是一种类似于下的系统:一个相似系统的客户端可以发送和接收任何其它客户端的消息。每个客户端都并入系统的代理中,它提供了建立、发送、接收和读取消息的可能。

交换系统使得分布式的交互操作成为可能。组件在目的地(Destination)发送消息,收件人也可以在相同的目的地中得到这个消息。发送者和收件人不一定是互相熟悉的。换句话说,它并没有强迫发送者知道一些收件人的信息,也没有强迫收件人知道某些发送者的信息。发送者和收件人只需要知道消息的格式以及要到达的目的地。在这种情形下,上述的系统不同于与它紧密相连的一些技术,例如远程方法调用(RMI),它只要求开发人员了解RMI中的一些方法。

消息传递系统

消息传递系统是一种分布式的系统,是基于系统组件之间的异步消息交换。面向消息的中间件(Message-Oriented Middleware,MOM)就是这种产品,消息传递系统是在它的原理上建立的。

消息传递系统应用软件不会直接地通讯(这与传统的系统(基于RMI的)形成鲜明的对照),而需要依赖MOM的帮助。如果系统的某个组件希望给另一个组件发送消息,它将把给定的消息发送给MOM,接着MOM把该消息发送给收件人。

利用JMS建立消息传递系统 - 编程入门网

与传统的基于RMI构建的系统相比,它有以下优点:

·发送消息的应用程序不需要期待回应,可以继续执行。

· 没有强迫发送消息的应用程序和特定消息的收件人在某个特定的时刻是激活的。如果消息的收件人不是激活的,MOM保证收件人一旦激活就立即收到该消息。

· 系统组件没有直接地彼此相连。它们被分离开了,这就是在运行时刻能把组件从一个主机传输到另一个、却不会中断系统可用性的原因。

消息交换模型:点对点模型和发表-预订模型

目前有两种“基本的”消息交换模型:点对点模型和发表-预订(pub-sub)模型。点对点模型应用于一个或多个组件(发送者)仅仅给一个组件收件人(接收者)发送消息的情形。这种模型是基于消息队列概念的:发送者把消息发送到队列中,接收者从该队列中读取消息。在点对点模型中,相同的队列上可能存在多个接收者,但是MOM只给其中一个传递消息。给哪一个传递消息依赖于MOM的实现(implementation)。

发表-预订模型应用于一个或多个组件(发表者)给一个或多个组件收件人(预订者)发送消息的情形。这种特定的模型是基于消息主题(message topic)概念的:发表者把消息发送到某个主题中,而该特定主题的预订者接收这些消息。

发表-预订模型看起来更加“优雅”,但是很多发表-预订模型不能保证消息按照发送的次序传递(它与点对点模型相反,点对点队列实现了FIFO(先进先出)原理)。因此,消息的次序很重要(或者为了同步需要使用消息的头和属性部分)的时候,就应该避免采用发表-预订模型。

Java消息服务(JMS)是使用面向消息中间件的一套Java API,它允许你的应用程序建立、发送、接收和读取消息。这组程序集位于J2EE程序包结构树上的javax.jms程序包中。JMS在很多MOM产品中得到了实现,其中iPlanet Message Queue、 IBM MQSeries、Progress Software SonicMQ、BEA

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号