ActiveMQ 优先队列(priority queues)

ActiveMQ 优先队列简介

ActiveMQ 5.4版本支持优先队列,消息游标和消息存储(KahaDB 、JDBC)两个支持消息优先级,KahaDB 是基于文件持久化数据库,使用KahaDB是本地消息代理,是ActiveMQ 5.4版本默认存储。

怎么使用ActivefMQ 优先队列

开启prioritezedMessages 优先队列配置,默认是false。


    
        
            
        
    

上面配置中的 queueName 支持通配符的形式,比如 queue = ">" 表示所有队列都支持优先级,queue = "myqueue" 表示myqueue 队列支持消息优先级。

通配符支持

.  是用于分割路径中的名称

* 是匹配路径中任何名称

> 是递归匹配名称开始到目标

注意:不要在通配符">" 后面加任何字符串,添加也将被忽略。

 ActiveMQ 队列优先级别

JDBC 消息存储,优先级别值范围是0~9,KahaDb 支持三种优先级别:低级别(<4) 默认(=4) 高级别(>4)。

ActiveMQ 优先级别使用方式

直接在JMS消息上面设置优先级 setJMSPriority()如下设置优先级为9:

producer.send(sentMessages, DeliveryMode.NON_PERSISTENT, 9, 0);

 

参考资料:

https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=tree;f=assembly/src/release/examples/conf;hb=HEAD

http://activemq.apache.org/wildcards.html

 

你可能感兴趣的:(ActiveMQ 优先队列(priority queues))