一、JMS基础

1、什么是JMS

JMS 是 java message service [java消息服务]

  • Java消息服务实直两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用的接口,包括创建,发送,读取消息等,用与支持JAVA应用程序开发,在JavaEE中,当两个应用程序使用JMS进行通信时,他们之间并不是直接相连的,而是通过一个共同的消息收发服务组件关联起来以达到解耦/异步消峰的效果

    2、JMS组成结构和特点

  • JMS provider 实现JMS的具体产品 例如 activeMQ rabbitMQ

  • JMS producer 消息提供者,创建和发送JMS消息的客户端应用
  • JMS consumer 消息消费者,接收和处理JMS消息的客户端应用
  • JMS Message 消息

3、JMS Message

3.1、消息头

  • **JMSDestination()** 消息发送的目的地,主要是指Queue和Topic
  • **JMSDeliveryMode()** 持久和非持久模式
    • 一条持久的消息:应该被传送“一次仅仅一次”,这就意味着如果JMS提供者出现了故障,该消息并不会丢失,他会在服务器恢复之后再次传递。
    • 一条非持久消息:最多会传送一次,这意味着服务器出现故障,该消息将永远丢失
  • **JMSExpriation()** 消息的过期时间
    • 可以设置消息在一定时间后过期 ,默认是永不过期
    • 消息过期时间,等于Destination的send方法中的timeToLive值加上发送时刻的GMT世间值
    • 如果send() 中timeToLive参数为0,则JMSExpiration被设置为0,表示该消息永远不会过期。
    • 如果发送后,在消息过期时间之后消息还没有被发送到目的地,则该消息被清除。
  • **JMSPriority()**消息优先级
    • 消息优先级,从0-9 十个优先级级别,0到4是普通消息,5-9是加急消息。
    • JMS不要求MQ严格按照这是个优先级发送消息,但必须保证加急消息要先于普通消息到达,
    • 默认是4级
  • **JMSMessageID(String id)** **唯一识别消息的标识**

3.2、消息体

3.3、消息属性