ActiveMQ消息队列的使用及应用(二丶JMS基本概念和模型)

一丶JMS基本概念(1)

概念

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

JMS规范

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

JMS Provider

实现JMS接口和规范的的消息中间件

JMS Message

JMS消息,由以下三部分组成:

1.消息头:每个消息头字段都有相应的的getter和setter方法

2.消息属性:如果需要消除消息头字段以外的值,可以使用消息属性

3.消息体:封装具体的消息数据

JMS Producer

消息生产者,创建和发送JMS消息的客户端应用

JMS Costumer

消息消费者,接受和处理JMS消息的客户端应用

    消息者可以使用以下两种消费方式之一:

       1:同步消费:通过调用消费者的recive的方法从目的地中显式提取消息,recive方法可以一直阻塞到消息的送达

  2:异步消费:客户可以作为消费者注册一个消息监听器,以定义消息到达时所采取的操作。

二丶JMS基本概念(2)

JMS Domains

消息传递域,JMS中规定了两种消息传递域,点对点(point-to-point,简写PTP),和发布/订阅传递域(publish/subscribe,简写成pub/sub)

    1.点对点消息传递域的特点

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

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

           

    2.发布/订阅传递域的特点

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

        (2)生产者和消费者之间有时间上的相关性,订阅一个主题的消费者(topic),只能消费自它订阅之后发布的消息,JMS规范允许客户创建持久订阅

         这在一定程度上放宽了时间上的相关性要求,持久订阅允许消费者消费他处于未激活状态是发送的消息。

    3.在点对点消息传递域中,目的地被称为队列(queue),在发布/订阅消息传递域中,目的地被称为主题(topic)+

         

五丶JMS消息结构(1)

JMS消息由以下几部分组成

消息头,属性,消息体

   1.消息头包含消息的识别信息和路由信息,有以下一些标准属性

         1:JMSDestination:消息发送的目的地,主要是指queen或topic。自动分配。

         2:JMSDeliveryMode:传送模式,两种 持久模式非持久模式(持久模式:JMS提供者出现故障,再次连接会再次传递,非持久模式相反)

       

     

六丶JMS消息结构(2)

JMS API 定义了5种消息格式,也叫消息类型

   TextMessage,MapMessage,BytesMessage,StreamMessage和ObjectMessage

JMS 消息属性

   (1)应用程序设置和添加的属性:

          比如 message.setStringProperty(“‘username’,username)

   (2)JMS定义的属性

          使用JMSX作为属性名的前缀,

    connection.getMetaData().getJMSXPropertyNames()方法返回所有支持的JMS的属性名字。

 

猜你喜欢

转载自www.cnblogs.com/quangeshishen/p/10193850.html