3

是否可以配置 RabbitMQ 交换或队列,以便在任何时候最多有一条具有给定路由键的消息处于挂起状态?如果有新消息到达,旧消息将被丢弃,新消息将入队。

如果这样的选项不可用,那么在应用程序级别实现它的最佳方法是什么?即当应用程序收到一条消息时,它如何检查是否还有更多未决消息?

4

1 回答 1

6

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

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

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

这是一个类似的问题: RabbitMQ 消息传递 - 初始化消费者

于 2012-11-19T11:02:51.640 回答