`
yitongnull
  • 浏览: 4436 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JMS规范学习

 
阅读更多

JMS规范

1.     Java消息服务(Java Message ServiceJMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

 

2.两种消息模型:

1)点对点或队列模型

 

 

在点对点或队列模型下,一个生产者向一个特定的队列发布消息,一个消费者从该队列中读取消息。这里,生产者知道消费者的队列,并直接将消息发送到消费者的队列。这种模式被概括为:

    -只有一个消费者将获得消息

    -生产者不需要在接收者消费该消息期间处于运行状态,接收者也同样不需要在消息发送时处于运行状态。

    -每一个成功处理的消息都由接收者签收

 

2)发布/订阅模型

 

 

发布者/订阅者模型支持向一个特定的消息主题发布消息。0或多个订阅者可能对接收来自特定消息主题的消息感兴趣。在这种模型下,发布者和订阅者彼此不知道对方。这种模式好比是匿名公告板。这种模式被概括为:

      -多个消费者可以获得消息

      -在发布者和订阅者之间存在时间依赖性。发布者需要建立一个订阅(subscription),以便客户能够购订阅。订阅者必须保持持续的活动状态以接收消息,除非订阅者建立了持久的订阅。在那种情况下,在订阅者未连接时发布的消息将在订阅者重新连接时重新发布。

 

3.JMS应用程序接口

Java消息服务的APIjavax.jms包中提供。

 

 

ConnectionFactory 接口(连接工厂)

     用户用来创建到JMS提供者的连接的被管对象。JMS客户通过可移植的接口访问连接,这样当下层的实现改变时,代码不需要进行修改。 管理员在JNDI名字空间中配置连接工厂,这样,JMS客户才能够查找到它们。根据消息类型的不同,用户将使用队列连接工厂,或者主题连接工厂。

 

Connection 接口(连接)

     连接代表了应用程序和消息服务器之间的通信链路。在获得了连接工厂后,就可以创建一个与JMS提供者的连接。根据不同的连接类型,连接允许用户创建会话,以发送和接收队列和主题到目标。

 

Destination 接口(目标)

     目标是一个包装了消息目标标识符的被管对象,消息目标是指消息发布和接收的地点,或者是队列,或者是主题。JMS管理员创建这些对象,然后用户通过JNDI发现它们。和连接工厂一样,管理员可以创建两种类型的目标,点对点模型的队列,以及发布者/订阅者模型的主题。

 

MessageConsumer 接口(消息消费者)

       由会话创建的对象,用于接收发送到目标的消息。消费者可以同步地(阻塞模式),或异步(非阻塞)接收队列和主题类型的消息。

 

MessageProducer 接口(消息生产者)

由会话创建的对象,用于发送消息到目标。用户可以创建某个目标的发送者,也可以创建一个通用的发送者,在发送消息时指定目标。

 

Message 接口(消息)

      是在消费者和生产者之间传送的对象,也就是说从一个应用程序创送到另一个应用程序。一个消息有三个主要部分

    -消息头(必须):包含用于识别和为消息寻找路由的操作设置。

    - 一组消息属性(可选):包含额外的属性,支持其他提供者和用户的兼容。可以创建定制的字段和过滤   器(消息选择 器)。

     - 一个消息体(可选):允许用户创建五种类型的消息(文本消息,映射消息,字节消息,流消息和对象    消息)。

      消息接口非常灵活,并提供了许多方式来定制消息的内容。

 

Session 接口(会话)

        表示一个单线程的上下文,用于发送和接收消息。由于会话是单线程的,所以消息是连续的,就是说消息是按照发送的顺序一个一个接收的。会话的好处是它支持事务。如果用户选择了事务支持,会话上下文将保存一组消息,直到事务被提交才发送这些消息。在提交事务之前,用户可以使用回滚操作取消这些消息。一个会话允许用户创建消息生产者来发送消息,创建消息消费者来接收消息。

 

4.Messages can be consumed in either of two ways:

Synchronously: A subscriber or a receiver explicitly fetches the message from the destination by calling the receive method. The receive method can block until a message arrives or can time out if a message does not arrive within a specified time limit.

Asynchronously: A client can register a message listener with a consumer. A message listener is similar to an event listener. Whenever a message arrives at the destination, the JMS provider delivers the message by calling the listener’s onMessage method, which acts on the contents of the message.

 

 

  • 大小: 10.6 KB
  • 大小: 11.1 KB
  • 大小: 18.4 KB
分享到:
评论

相关推荐

    JMS规范v1.1官方手册.pdf

    JMS规范v1.1的官方原版,大家学习ActiveMQ的时候可以进行参考。详细介绍了包括连接、session、生产者、消费者、topic、queue等概念。深入学习的必备手册。

    《JMS 1.1 规范》-电子文档下载(PDF)(中文)

    作者:卫建军 Java 是当前 IT 领域中比较流行的技术之一。J2EE 是当前比较流行的企业级应用架构。 本人一直致力于 J2EE 架构的学习和研究,但是总是对英文文档...持久化规范》和《JMS1.1 规范》。希望对大家有所帮助。

    JMS规范教程--学习JMS的朋友可以看看

    JMS规范教程,学习JMS的朋友可以好好看看

    JMS1.1规范 中文版

    讲解了JMS的基本知识,很有学习的价值,希望能给大家带来一些帮助!

    EJB 规范学习文档

    对于 EJB 了解有很好的帮助,里面EJB 持久规范,核心规范,还有JMS规范,我还有其他合集文档,对你学习了解J2EE有不错的帮助。

    JAVA消息服务JMS规范及原理详解.docx

    ——学习参考资料:仅用于个人学习使用! 本代码仅作学习交流,切勿用于商业用途,否则后果自负。若涉及侵权,请联系,会尽快处理! 未进行详尽测试,请自行调试!

    Introducing the Java Message Service

    JMS规范,英文版,讲述JMS规范。好好学习天天向上

    EJB3.0规范中文版

    EJB3.0规范,包括EJB3核心规范.pdf、EJB3持久化规范(简体中文版).pdf、JMS1_1规范(简体中文版).pdf。希望对Java EE学习者有帮助。

    Java分布式应用学习笔记08JMX规范与各种监控场景

    Java分布式应用学习笔记08JMX规范与各种监控场景

    JMS打字高手

    该软件在教学中有许多独到之处,如指法训练的手形演示,对帮助初学者尽快掌握指法及规范指法非常有用,五笔教学的字根拆解,它为每一个爱好五笔的人提供一个极好的学习环境,让五笔练习成为一种看得见、摸得着的实践...

    activeMq资料学习

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息...ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。

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

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

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    jms Queue Topic kafka 持久 复制 Stream Partition rocketMQ RabbitMQ ActiveMQ 常用开源框架 Spring Spring MVC Spring WebFlow spring tx aop ioc Struts ibatis Mybatis CAS Dubbo 工作...

    Docker学习之搭建ActiveMQ消息服务的方法步骤

    ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。 在生产项目中,很多时候需要消息中间件来进行分布式...

    J2EE学习笔记

    6.2:JMS 172 6.3:Socket 182 6.4:WebService 189 6.5:集群分布式应用(以JBOSS为例) 190 6.6:JNLP原理及应用: 190 6.7:Log4原理及应用: 191 6.8:JFreeChat原理及应用: 191 6.9:几种常用协议 192 7.0:SOA原理 200 8...

    java消息服务

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

    rabbitmq学习手册

    JMS是早期消息中间件进行标准化的一个尝试,它仅仅是在API级进行了规范,离创建互操作能力还差很远。 与JMS不同,AMQP是一个Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流。因此任何遵守此数据格式...

    《JAVA消息服务》PDF]

    您将学习如何的JMS可以帮助你解决许多建筑的挑战,如不同的系统集成和应用,提高可扩展性,消除系统的瓶颈,支持并行处理,促进灵活性和敏捷性。 JMS 1.1的更新,这也说明第二版如何与供应商无关的规范将帮助您编写...

    Java消息服务(第2版)

    你将学习到JMS如何帮助你解决许多架构难题,如整合不同的系统和应用程序,增加可扩展性,消除系统瓶颈,支持并行处理,提升灵活性和敏捷性。由于更新了JMS 1.1,第二版还说明了厂商无关的规范将有助于你写基于...

Global site tag (gtag.js) - Google Analytics