一、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)**
**唯一识别消息的标识**