【问题标题】:Unable to get message in priority sequence Spring camel rabbitmq无法按优先级顺序获取消息 Spring camel rabbitmq
【发布时间】:2017-06-16 06:39:40
【问题描述】:

我是使用spring camel rabbitmq的初学者。

我可以通过在生产者端的交换头中设置消息头中的消息优先级来设置消息优先级,如下所示:

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

但是在消费消息时,它们并没有按优先级顺序排列。救命!!

我可以在rabbitmq 的网络界面中看到适当设置的优先级标头

【问题讨论】:

    标签: spring rabbitmq apache-camel amqp


    【解决方案1】:

    请仔细阅读this document的“与消费者互动”部分。您还应该在 RabbitMQ Users List 上搜索答案,或者如果尚未提出您的问题,请在此处发布。

    【讨论】:

    • 如果消息已经排队,然后我将消费者附加到它上面怎么办。那么它应该优先处理消息吗?我不会随后发布这些消息。
    【解决方案2】:

    有问题。 问题是我无法使用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。

    【讨论】:

      猜你喜欢
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2015-09-04
      • 1970-01-01
      • 2019-01-19
      • 2018-01-29
      相关资源
      最近更新 更多