`

深入掌握JMS(一)

阅读更多

1. JMS基本概念

JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/Sub)模型。P2P 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。

    对于点到点模型,消息生产者产生一个消息后,把这个消息发送到一个Queue(队列)中,然后消息接收者再从这个Queue中读取,一旦这个消息被一个接收者读取之后,它就在这个Queue中消失了,所以一个消息只能被一个接收者消费。

    与点到点模型不同,发布/订阅模型中,消息生产者产生一个消息后,把这个消息发送到一个Topic中,这个Topic可以同时有多个接收者在监听,当一个消息到达这个Topic之后,所有消息接收者都会收到这个消息。

    

简单的讲,点到点模型和发布/订阅模型的区别就是前者是一对一,后者是一对多。

2. 几个重要概念

Destination:消息发送的目的地,也就是前面说的Queue和Topic。创建好一个消息之后,只需要把这个消息发送到目的地,消息的发送者就可以继续做自己的事情,而不用等待消息被处理完成。至于这个消息什么时候,会被哪个消费者消费,完全取决于消息的接受者。

Message:从字面上就可以看出是被发送的消息。它有下面几种类型:

StreamMessage:Java 数据流消息,用标准流操作来顺序的填充和读取。

MapMessage:一个Map类型的消息;名称为 string 类型,而值为 Java 的基本类型。

TextMessage:普通字符串消息,包含一个String。

ObjectMessage:对象消息,包含一个可序列化的Java 对象

BytesMessage:二进制数组消息,包含一个byte[]。

XMLMessage:  一个XML类型的消息。

最常用的是TextMessage和ObjectMessage。

Session:与JMS提供者所建立的会话,通过Session我们才可以创建一个Message。

Connection:与JMS提供者建立的一个连接。可以从这个连接创建一个会话,即Session。

ConnectionFactory:那如何创建一个Connection呢?这就需要下面讲到的ConnectionFactory了。通过这个工厂类就可以得到一个与JMS提供者的连接,即Conection。

Producer:消息的生产者,要发送一个消息,必须通过这个生产者来发送。

MessageConsumer:与生产者相对应,这是消息的消费者或接收者,通过它来接收一个消息。

前面多次提到JMS提供者,因为JMS给我们提供的只是一系列接口,当我们使用一个JMS的时候,还是需要一个第三方的提供者,它的作用就是真正管理这些Connection,Session,Topic和Queue等。

 

通过下面这个简图可以看出上面这些概念的关系。

 

  ConnectionFactory---->Connection--->Session--->Message

  Destination + Session------------------------------------>Producer

  Destination + Session------------------------------------>MessageConsumer

 

那么可能有人会问: ConnectionFactoryDestination 从哪儿得到?

这就和JMS提供者有关了. 如果在一个JavaEE环境中, 可以通过JNDI查找得到, 如果在一个非JavaEE环境中, 那只能通过JMS提供者提供给我们的接口得到了.

分享到:
评论

相关推荐

    深入掌握JMS.doc

    深入掌握JMS,详细讲解JMS原理及JMS开发

    深入掌握JMS深入掌握JMS

    在了解了JMS的基础上深入的了解它,有实例代码,可以加深你对它的理解。

    深入掌握JMS——ActiveMQ 十一章

    深入掌握JMS——ActiveMQ 十一章pdf,收集整理

    深入掌握JMS-ActiveMQ

    JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。本资源为chm格式,深入介绍了ActiveMQ的应用。

    深入掌握 JMS(java message service)

    一篇深入的讲解了java message service技术的文档 ,希望对大家有所帮助

    深入掌握J2EE编程技术

    《深入掌握J2EE编程技术》全面介绍了JSP层,EJB层和EIS层的设计思想与编程技术,涉及的内容包括:JDBC,JNDI,LDAP,Servlet,JSP,Taglib,EJB,J2EE,Connector,SAX与DOM,RMI,CORBA,JavaMail和JMS。...

    深入掌握J2EE编程技术(卷一)

    本书全面深入地介绍了当今最热门的...为分开压缩的,必须两个都下载才能解压缩,上传大小的限制,不要怨我,呵呵,深入掌握J2EE编程技术(卷二) ,看我的其它资源里有,下载地址http://download.csdn.net/source/2242179

    深入掌握J2EE编程技术(卷二)

    本书全面深入地介绍了当今最热门的...为分开压缩的,必须两个都下载才能解压缩,上传大小的限制,不要怨我,呵呵,深入掌握J2EE编程技术(卷一) ,看我的其它资源里有,下载地址http://download.csdn.net/source/2242132

    《Java消息服务(第二版)》电子书

    本书深入浅出地讲解了JMS1.1规范的底层技术、Java类和接口、编程模型及其不同实现等Java消息服务(JMS)和消息传送机制关键技术。通过对支持点对点和发布/订阅“消息传送”的标准API的完全解读及具体实例,介绍了...

    java消息服务

    本书深入浅出地讲解了jms1.1规范的底层技术、java类和接口、编程模型及其不同实现等java消息服务(jms)和消息传送机制关键技术。通过对支持点对点和发布/订阅“消息传送”的标准api的完全解读及具体实例,介绍了...

    JBoss中文文档(pdf版)

    第1章,将涉及JBoss 4.0.x应用服务器的下载、安装以及运行。然后,第2章大体上给出JBoss应用服务器的目录结构、主要配置文件以及服务。最后,第3章介绍了本书待使用的、J2EE ...它将带您深入掌握JBoss应用服务器。

    J2EE软件工程师全部培训课程总结(205页)

    J2EE软件工程师全部培训课程总结几乎包括了JAVA程序员和JAVA软件工程师要掌握JAVA核心技术的全部内容,内容包括:UML、ORALCE、JDBC、JSP、AJAX、SERVLET、JavaScript、Struts、JSF、Hibernate3.0、Spring、JMS、CVS、...

    JBPM4工作流应用开始指南.rar

    209 10.3 如何在活动中调用EJB方法 214 10.4 使用jms活动 215 10.4.1 模拟JMS服务 217 10.4.2 JMS文本消息 219 10.4.3 JMS Object消息 220 10.4.4 JMS Map消息 222 10.5 历史会话监听链 223 10.6 自定义Web任务表单 ...

    非常苛刻的java工作要求

    1. 精通web jsp,servlet,、Tag、java bean,JMS,EJB,Jdbc开发,熟悉J2EE规范,熟悉各种常用设计模式,熟悉UML建模工具;掌握主流的Java开源框架Struts2、Spring、SpringMVC、Hibernate/Mybatis、iBatis等,最好熟悉...

    Fourinone分布式计算框架

    但是FourInOne不实现JMS的规范,不提供JMS的消息确认和消息过滤等特殊功能,不过开发者可以基于FourInOne自己去扩充这些功能,包括mq集群,利用一个独立的domain/node建立队列或者主题的key隐射,再仿照上面分布式...

Global site tag (gtag.js) - Google Analytics