ActiveMQ中JMS的消息结构

在这段时间要用到ActiveMQ写一个消息中间件为了方便保存笔记,下面是JMS中消息的结构

JMS中的消息结构

消息由:消息头,属性和消息体组成。

消息头包含消息的识别消息和路由信息,消息头包含一些标准的属性:

JMSDestination:由send方法设置   消息发送的目的地,主要是指Queue和Topic。(自动分配)

JMSDeliveryMode:由send方法设置  传送模式。有两种:持久模式和非持久模式,一条持久性的消息应该“只被传送一次”,如果JMS提供者发现故障时这个消息不会丢失,它会在服务器恢复的时候再传一次。非持久性的消息“最多传送一次”,如果出现故障就会永久丢失。(自动分配)

JMSExpiration:由send方法设置  消息的过期时间,等于Destination的send方法中的timeTolive值加上发送时刻GMT时间值,如果timeToLive值等于零,JMSExpiration被设为零,表示该消息永不过期。如果发送后,在消息过期时间之后消息还没有被发送到目的地,则该消息被清除。(自动分配)

JMSPriority:由send方法设置    消息优先级  0-9优先级由低到高。默认级别是4。(自动分配)

JMSMessageID:由send方法设置    唯一识别每个消息的标识,由JMS Provider产生。(自动分配)

JMSTimestamp:由客户端设置     一个JMS Provider在调用send()方法时自动设置的。它是消息被发送和消费者实际接收的时间差。(自动分配)

JMSCorrelatioinID:由客户端设置   用来连接到另外一个消息,典型的应用是在回复消息中链接到元消息。在大多数情况下,JMSCorrelationID用于将一条消息标记为对JMSMessageID标识的上一条消息的应答。(由开发者设置)

JMSReplyTo:由客户端设置   提供本消息回复消息的目的地。(自动分配)

JMSType:由客户端设置   消息类型的识别符。(自动分配)

JMSRedelivered:由JMS Provider设置  如果一个客户端收到一个设置了JMSRedelivered属性的消息,则表示可能客户端曾经在早些时候收到过该消息,但并没有签收(acknowledged)。如果该消息被重新传送,JMSRedilvered=true反之,JMSRedelivered=false。(自动分配)

posted @ 2017-03-17 11:23  博淋园  阅读(1014)  评论(0)    收藏  举报