配置RabbitMQ以用新消息替换旧的挂起消息

配置RabbitMQ以用新消息替换旧的挂起消息,rabbitmq,amqp,Rabbitmq,Amqp,是否可以将RabbitMQ交换或队列配置为在任何时候最多有一条具有给定路由密钥的消息处于挂起状态?如果新消息到达,旧消息将被丢弃,新消息将进入队列 如果这样的选项不可用,那么在应用程序级别实现这一点的最佳方法是什么?例如,当应用程序收到消息时,它如何检查是否还有其他未决消息?您需要安装Last Value Cache并启用它。您的交换类型将是“x-lvc”,它继承自直接交换类型 每次连接到MQ时,创建一个队列并绑定到此exchange。它将向队列传递最新的消息。它非常适合确保您只收到最新的消息。

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


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

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

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

以下是安装说明:

这里有一个类似的问题:

我觉得您可能需要类似于上次值缓存的东西。但我不确定。你能举一个具体的例子说明你想做什么吗do@robthewolf我使用rabbitmq在服务器和客户机之间进行通信。服务器发送消息告诉客户端客户端应该处于什么状态。客户端可以断开连接,在这种情况下,消息将排队并等待客户端重新连接。当客户端重新连接时,它确实对服务器发送的最后一条消息感兴趣,因为最后一条消息表示服务器此时希望客户端处于的状态。