JMS的基本概念

Posted zengzil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMS的基本概念相关的知识,希望对你有一定的参考价值。

1. JMS是什么?

JMS (Java Message Service) 是Java消息服务,是Java EE中的一个技术。

2.  JMS规范

JMS定义了Java中访问消息中间件的接口,并没有给予实现。实现JMS接口的消息中间件称为 Java Provider。例如:ActiveMQ.

3. JMS Provider:实现了JMS接口和规范的消息中间件。

4. JMS message:JMS的消息。JMS消息有三部分组成:

  1. 消息头:每个消息头字段都有getter和setter方法。
  2. 消息属性:如果需要除消息头字段外的值,那么可以使用消息属性。
  3. 消息体:封装具体的消息数据。

5.  JMS producer:消息生产者,创建和发送JMS消息的客户端应用。

6. JMS consumer:消息消费者,接收和处理JMS消息的客户端应用。

消息的消费可以采取以下两种方法之一:

  1. 同步消息:通过调用消费者的receive方法从目的地中显示提取消息,receive方法一直阻塞到消息到达。
  2. 异步消息:客户可以为消费者注册一个消息监听器,以定义消息到达时的动作。

7. JMS domains:消息传递域,JMS规范了两种消息传递域:点对点(point – to point,简称PTP)消息传递域和发布/订阅消息传递域(publish/subscribe,简称pub/sub)。

   7.1点对点消息传递域的特点如下:

                1)        每个消息只能有一个消费者。

                2)        消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发送消息的时候是否处于正常运行状态,它都可以提取到消息。

技术分享图片

 

 

  7.2.发布/订阅消息传递域的特点如下:

             1)        每个消息可以有多个消费者。

             2)        消息生产者和消费者有时间上的相关性。订阅主题的消费者只能消费自它订阅之后发布的消息。JMS规范允许客户创建持久订阅,这在一定程度上放松了时间上的相关性。持久订阅允许消费者消费它在未处于激活时发送的消息。

 技术分享图片

  7.3.在点对点消息传递域中,目的地称为队列(Queue);在订阅/发布传递域中称为主题(topic)。

8.  Connection factory:连接工厂,用于创建连接对象,连接JMS的provider。

9.  JMS Connection:封装了客户与JMS提供者之间的虚拟连接

10. JMS Session:是生产和消费消息的一个单线程上下文,会话用于创建消息生产者(producer)、消息消费者(consumer)、消息(message)等。会话提供了一个事务性的上下文,在这个上下文中,一组发送和接收被组合到了一个原子操作中。

11.  Destination:消息发送到的目的地

12.  Acknowledge:签收

13.  Transaction:实务

14.  JMS client:用来发送消息的Java应用

15.  Non-JMS client:使用JMS provider本地API写的应用。用来替换JMS API实现收发消息的功能,通常会提供其他一些特性。例如:CORBA、RMI等

16.  Administered objects:预定义的JMS对象,通常在provider规范中有定义,提供给JMS客户端来访问。例如:ConnectionFactory和destination

 

 

 

 

 

12:44:34


以上是关于JMS的基本概念的主要内容,如果未能解决你的问题,请参考以下文章

JMS基本概念和模型

深入浅出JMS----JMS基本概念

深入浅出JMS--JMS基本概念

JMS基本概念

深入浅出JMS--JMS基本概念

ActiveMQ(02):JMS基本概念和模型