更新时间:2025-09-18 GMT+08:00
配置RabbitMQ优先级队列
优先级队列(Priority Queue)是一种突破传统FIFO(先进先出)规则的特殊队列结构,其核心特征是消息的消费顺序由优先级决定。
RabbitMQ 3.x.x版本和AMQP-0-9-1版本都支持配置优先级队列。
约束与限制
- RabbitMQ 3.x.x版本的优先级取值为:0~255。
- RabbitMQ AMQP-0-9-1版本的优先级取值为:0~9。
配置优先级队列
- 在声明队列时设置“x-max-priority”参数(如x-max-priority=5),指定队列支持的最大优先级范围,值越大优先级越高。
- 在发送消息时通过“priority”属性设置优先级,值越大优先级越高。
- (可选)将队列划分为多个子队列,消费时按照优先级顺序,从高到低依次处理。示例代码如下:
String queueName = "queue" channel.queueDeclare(queueName, true, false, false, args); final AMQP.BasicProperties.Builder basicProps = new AMQP.BasicProperties().builder(); basicProps.priority(5); channel.basicPublish("", queueName, basicProps.build(), "test".getBytes())