JMS message消息头有5块,分别是:
- JMSDestination:消息发送的目的地,主要指Queue和Topic,可以针对某条消息使用message.setJMSDestination(Destination destination)方法来设置。
- JMSDeliveryMode:持久模式,分为持久(DeliveryMode.PRESISTENT)和非持久(DeliveryMode.NON_PRESISTENT)。对于一条持久消息,应该被传送一次仅仅一次,意味着如果JMS提供者出现故障,该消息不会丢失,它会在服务器恢复之后再次传递。对于一条非持久消息,最多会传递一次,意味着如果服务器出现故障,消息就用于丢失了。可以使用message.setJMSDeliveryMode(int deliveryMode)方法来设置。
- JMSExpiration:消息的过期时间,默认是永不过期。如果发送后,在消息过期时间后,还没有被送到目的地,则该消息被清除。可以使用message.setJMSExpiration(long timeToLive)方法来设置。
- JMSPriority:消息优先级,从0-9一共10个级别,0-4是普通消息,5-9是加急消息,默认是4级。JMS不要求MQ必须严格按照消息优先级发送,但是必须保证加急消息要先于普通消息发送。可以使用message.setJMSPriority(int priority)方法来设置。
- JMSMessageID:消息ID,唯一识别每个消息的标识,由MQ产生。可以通过message.setJMSMessageID(String id)方法来设置。