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。(自动分配)

浙公网安备 33010602011771号