简单明了地解释JMS , 相关概念 ,以及JMS的实例代码下载 ,传统

首先是一个生活中的一个例子 来让咱们先理解下 :异步和同步的概念。

*******************************************************下面是生活中的例子

比方说你马上就要下班赶飞机度假了,但是度假前却需要先跟上级报告工作进度。以便度假回来接着干。但是上级现在却在开会。如果你此时打个电话报告是会影响开会进度的。所以你发送了一条短信报告自己的工作进度,然后赶飞机度假去了。这条短信不会阻塞你赶飞机的进程。所以这里可以引申为异步的方式。

于是你开开心心的度假去了。可是不巧,路上有人出了车祸,而你有恰好在场,所以你决定打救护车。此时你必须打电话告知,此时,此地,有人受伤了。 而不可能通过发送短信的方式,因为发送短信不知道何时才会被救护人员注意到。所以你必须打电话,而此时,你赶飞机的进程就被阻塞了。你又必须等待救护人员的回应。所以,此处理解为同步的方式。

通过上述的描述,读者们应该对同步异步了解了把?

现在进入正题 JMS 是Java Message Service 的简称,是有sun公司开发的一套规范。它为 Java程序提供一种访问企业消息系统的方法。在讨论JMS之前,我们分来析一下企业消息系统。 企业消息系统,即面向消息的中间件(MOM),提供了以松散耦合的灵活方式集成应用程序的一种机制。它们提供了基于存储和转发的应用程序之间的异步数据发送,,即应用程序彼此不直接通信,而是与作为中介的MOM 通信。MOM提供了有保证的消息发送,应用程序开发人员无需了解远程过程调用(PRC)和网络/通信协议的细节。ActiveMQ正是MOM中优秀的一员。JMS从提出以来,致力于完成如下几个目标:定义一组消息公用概念和实用工具。 所有Java应用程序都可以使用JMS中定义的API去完成消息的创建、接收与发送,任何实现了JMS标准的MOM都可以作为消息的中介,完成消息的存储转发。最大化消息应用程序的可移植性。 MOM提供了有保证的消息发送,应用程序开发人员无需了解远程过程调用(PRC)和网络/通信协议的细节,提供了程序的可移植性。 最大化降低应用程序与应用系统之间的耦合度。 由于MOM的存在,各个应用程序只关心和MOM之间如何进行消息的接收与发送,而无需关注MOM的另一边,其他程序是如何接收和发送的。

JMS两种消息模型点到点(P2P) 模型

发布/订阅(pub/sub)模型 或者叫 广播式。

首先是点到点:

以下是关键知识点

a)点到点从名字上可以看出只有一个消费者,一个生产者。而且如果生产者捕获到了消息,需要告知中间代理,以便此消息不会被其他消费者捕获。

b)因为是异步的缘故,所以消费者可以在消息发布后的任意时间去捕获,前提是消息未过期,并且没被其他消费者捕获。

c)消费者也可以先存在,等待生产者生成消息,再去捕获。

然后是发布/订阅(pub/sub)模式:

以下是关键知识点

a)发布/订阅模型:发布/订阅传递消息类型与主题(Topic)有关。消费者本身会设置相关的Topic,多个消费者可以设置相同的Topic。所以,一旦生产者产生了消息,就可能会被多个消费者捕获。这种类型就像出版报纸、杂志的形式

b)而且,必须要消费者先存在,才能捕获生产者的消息。如果生产者先发布了消息,即便与消费者的主题相关,也是不会被捕获的。

c)订阅者必须保持为活动状态才能使用这些消息

实例代码的也是可以提供下载的。但是需要使用activeMQ充当使用服务中间件。

一个背包,几本书,所有喜欢的歌,

简单明了地解释JMS , 相关概念 ,以及JMS的实例代码下载 ,传统

相关文章:

你感兴趣的文章:

标签云: