配置RabbitMQ以使用新消息替换旧的待处理消息

时间:2012-11-19 09:59:24

标签: rabbitmq amqp

是否可以配置RabbitMQ交换或队列,使得任何时候最多一条带有给定路由密钥的消息都处于待处理状态?如果新消息到达,则旧消息将被丢弃,新消息将被排队。

如果此选项不可用,那么在应用程序级别实现此选项的最佳方法是什么?即当应用程序收到消息时,它如何检查是否还有待处理的消息?

1 个答案:

答案 0 :(得分:5)

您需要安装Last Value Cache并启用它。您的交易所将是“x-lvc”类型,它继承自直接交换类型。

每次连接到MQ时,创建一个队列并绑定到此交换。它会将最新消息传递给队列。它非常适合确保您只获得最新的消息。除非连接了队列,否则将丢弃发送到此交换的所有其他消息。因此,一旦连接,您将继续接收更新。

这是安装说明: https://github.com/simonmacmullen/rabbitmq-lvc-plugin

这是一个类似的问题: RabbitMQ messaging - initializing consumer