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

 碎蜂CYM夜一 发布于 2022-12-31 08:46

我正在使用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 个回答
  • 在3.5.0版之前,RabbitMQ 不支持开箱即用的优先级.

    但是有一个插件.

    您还可以通过使用多个队列来模拟优先级,但只有在高优先级消息的数量较少时才会真正起作用,与低优先级相比.

    2022-12-31 08:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有