在RabbitMQ中优先处理最新消息

时间:2015-05-07 02:30:46

标签: rabbitmq

我正在开发一个应用程序,其中实时传感器读数通过RabbitMQ队列传递给上传器,上传器将读数推送到中央服务器。在这个特定的应用中,最新的读数是最有价值的。这意味着我希望上传者首先处理最新的阅读,并通过积累的任何积压向后移动。

为了达到这个效果,我希望RabbitMQ有一个“堆栈”结构,消费者首先会收到最新消息。但是,我在RabbitMQ文档中找不到这样的东西。

我想出的一个解决方案是创建一个“实时”队列和一个“积压”队列。实时队列中的消息将具有短TTL,因此如果未快速处理,则将其移动到积压。这解决了首先推送最新读数的问题,但积压仍然会以错误的顺序处理。

关于如何在RabbitMQ中实现最新消息优先处理的任何建议?

1 个答案:

答案 0 :(得分:2)

如何使用priority queues

  

从版本3.5.0开始,RabbitMQ在核心中具有优先级队列实现。

另外,请注意参考手册页中的与其他功能的交互部分。