更新时间: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。

配置优先级队列

  1. 在声明队列时设置“x-max-priority”参数(如x-max-priority=5),指定队列支持的最大优先级范围,值越大优先级越高。
  2. 在发送消息时通过“priority”属性设置优先级,值越大优先级越高。
  3. (可选)将队列划分为多个子队列,消费时按照优先级顺序,从高到低依次处理。示例代码如下:

    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())

相关文档