You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AmqpTemplate设置RabbitMQ消费者优先级

同步消费者设置消费者优先级(x-priority)方案

你当前使用RabbitTemplate.receive()的同步消费方式,要设置消费者优先级(x-priority),可以通过给RabbitTemplate配置消费者参数来实现,具体步骤如下:

1. 修改RabbitTemplate配置

在配置类中,给RabbitTemplate添加consumerArguments,指定x-priority的值:

@Bean
public RabbitTemplate amqpTemplate(final ConnectionFactory connectionFactory) {
    RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
    // 设置消费者优先级,值越大优先级越高(取值范围0-255)
    rabbitTemplate.setConsumerArguments(Map.of("x-priority", 10));
    return rabbitTemplate;
}

2. 验证效果

你的ApplicationRunner代码无需修改,当调用template.receive("analyses", -1)时,底层创建的临时消费者会携带x-priority参数,RabbitMQ会根据该优先级分配消息。

补充说明

  • 消费者优先级取值范围为0到255,数值越高优先级越高;
  • 该参数仅在同一队列存在多个消费者时生效,RabbitMQ会优先将消息分配给优先级更高的消费者;
  • 同步消费方式下,RabbitTemplate的receive()方法每次调用会创建临时消费者,设置consumerArguments后所有临时消费者都会携带该优先级参数。

内容的提问来源于stack exchange,提问作者Sudoku8626

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 17:40:46