Spring AMQP:消息优先级无法正常工作

时间:2014-08-01 21:35:37

标签: rabbitmq spring-amqp

我正在使用Sprin AMQP的rabbittemplate通过RabbitMQ发送和接收消息。我能够发送和接收消息,Howver,我想用消息附加优先级。

例如,如果我正在推送1000条消息,并且让我们说奇数消息的优先级为1,偶数消息优先级为0,然后我开始使用消费者,那么消费者应首先接收奇数消息,然后甚至编号消息。

这是我的代码: 生产者:

public void sendMessage(int i) throws IOException {
    Record r = new Record();
    r.setFrom((i + 1));
    r.setTo("infoimage");
    r.setMessage("Hi Pritish.");
    MessageProperties prop = new MessageProperties();
    prop.setPriority(i%2);
    byte[] rByte = serialize(r);
    Message m = new Message(rByte, prop);
    rabbitTemplate.convertAndSend(queueName, m);
}

消费者:

public MessageListener exampleListener() {
    return new MessageListener() {
        public void onMessage(Message message) {
     //do some job
     }

};    }

我做错了吗?有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:6)

在3.5.0版之前,RabbitMQ doesn't support priority out of the box

虽然有a plugin

您还可以使用多个队列来模拟优先级,但只有当优先级较低的消息数量较少时,才会真正起作用。