无法按优先顺序获取消息 Spring camel rabbitmq

Unable to get message in priority sequence Spring camel rabbitmq

我是 spring camel rabbitmq 的初学者。

我可以在消息 header 中设置消息优先级,方法是在生产者端将其设置为交换 headers,如下所示:

exchange.getOut().setHeader("rabbitmq.PRIORITY", 1);

但是在使用消息时,它们并没有按优先顺序排列。帮助!!

我可以在 rabbitmq 的 Web 界面中看到适当设置了优先级 header

请仔细阅读 this document. You should also search for an answer on the RabbitMQ Users List 的 "Interaction with consumers" 部分或 post 你的问题,如果没有人问的话。

找到问题了。 问题是我无法使用 camel 端点设置 x-max-priority。 需要在队列的 queueArgsConfigurer 选项中添加。 为此,我们需要像这样实现 ArgsConfigurer 接口:

@Component(value="QueueArgsConfigurer")
public class QueueArgsConfigurer implements ArgsConfigurer {
@Override
public void configurArgs(Map<String, Object> map) {
    map.put("x-max-priority", 3);
}

}

并像这样添加到队列端点 queueArgsConfigurer 选项: queueArgsConfigurer=#QueueArgsConfigurer 由于我使用的是 spring 我通过其 bean 名称获取 QueueArgsConfigurer。