ActiveMQ 优先队列(priority queues)

本文介绍了ActiveMQ 5.4版本引入的优先队列特性,包括KahaDB和JDBC两种消息存储方式对优先级的支持。详细阐述了如何开启优先队列配置,如使用通配符设置队列优先级,并提到了JDBC存储中的优先级数值范围(0-9)以及KahaDB的三种优先级别。此外,还解释了通过setJMSPriority()方法直接在JMS消息上设置优先级的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ActiveMQ 优先队列简介

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

怎么使用ActivefMQ 优先队列

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

<destinationPolicy>
    <policyMap>
        <policyEntries>
            <policyEntry queue="queueName" prioritizedMessages="true" />
        </policyEntries>
    </policyMap>
</destinationPolicy>

上面配置中的 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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值