AMQ学习笔记 - 12. Spring-JmsTemplate特性设置
概述
这是关于JmsTemplate的最后一篇总结,且只会介绍几个比较重要的特性。
消息的递送模式
在发送消息给时,可以告知这是持久化的消息,还是非持久化的消息。如果是非持久化的消息,broker会将消息保留在内存,否则就会持久化到磁盘。非持久化:高吞吐,易丢失;持久化:低吞吐,不易丢失。
相关的API:
Class org.springframework.jms.core.JmsTemplate |
|
消息的优先级
在发送时,可以为消息指定优先级,以期高优先级的消息能更快的递送给consumer。在javax.jms.Message#getJMSPriority()方法,有如下的说明:
JMS API为消息定义了10个优先级,0最低,9最高。0-4作为一般的优先级,5-9作为加速优先级。JMS API不要求实现者能够严格按照消息的优先级的顺序把消息递送给consumer,但是应该尽量的实现加速优先级的消息能在一般优先级的消息的前面,递送给consumer。
下面是JmsTemplate中的API:
Class org.springframework.jms.core.JmsTemplate |
|
消息的存活时间
在发送时,可以设置消息的存活时间,默认为永久有效。
Class org.springframework.jms.core.JmsTemplate |
|
服务质量开关
如果不打开服务质量的开关,消息的递送模式、优先级和存活时间的设置就没有作用。
Class org.springframework.jms.core.JmsTemplate |
|
在JMS API中,消息的递送模式、优先级和存活时间可以在发送的时候统一设置:
- javax.jms.MessageProducer#send(Message message, int deliveryMode, int priority, long timeToLive):void
接收等待时间
JmsTemplate的接收是阻塞式的接收,默认会一直阻塞等待,直到接收到了消息。也可以设置一个最长的等待时间参数,超过这个时间,接收的方法将得到null的结果。
Class org.springframework.jms.core.JmsTemplate |
|
本文来自博客园,作者:一尾金鱼,转载请注明原文链接:https://www.cnblogs.com/ywjy/articles/5434146.html