如何从rabbitmq丢弃某些消息

如何从rabbitmq丢弃某些消息,rabbitmq,Rabbitmq,生产者每5秒向交换机发送一次带有路由密钥(x)的消息。根据路由密钥,它被发送到2个队列A和B。从A消费的消费者希望每5秒发送一次,但从B消费的消费者只需要每分钟发送一次消息 一种方法是使用队列B中的消息并丢弃我们不需要的消息(只考虑一分钟一次) 在rabbitmq中,还有其他更好的方法可以做到这一点吗?消费者可以保持关于上次消费消息的状态。当新消息到达时,可以检查自上次消息被使用以来所需的时间是否已过。如果不是,他可以忽略这个信息 这是必须由使用者而不是RabbitMQ代理处理的逻辑。的重复数据

生产者每5秒向交换机发送一次带有路由密钥(x)的消息。根据路由密钥,它被发送到2个队列A和B。从A消费的消费者希望每5秒发送一次,但从B消费的消费者只需要每分钟发送一次消息

一种方法是使用队列B中的消息并丢弃我们不需要的消息(只考虑一分钟一次)


在rabbitmq中,还有其他更好的方法可以做到这一点吗?

消费者可以保持关于上次消费消息的状态。当新消息到达时,可以检查自上次消息被使用以来所需的时间是否已过。如果不是,他可以忽略这个信息


这是必须由使用者而不是RabbitMQ代理处理的逻辑。

的重复数据消除交换就是为了满足这一目的而设计的

您可以指定不希望多次看到类似消息的时间,并且exchange将删除给定消息的任何进一步副本。通过
x-deduplication-header
识别消息

可以通过
x-cache-ttl
交换参数或消息头来控制消息保证唯一的时间量