RabbitMQ使用者是否可以配置为仅使用相同消息的已定义尝试次数

RabbitMQ在某种程度上是否有用,我可以定义我的消费者,它有限制使用相同的消息。 即我的消费者用enqueue = true做一个基本的Reject。 并且它会无限地继续听同样的信息。 我不是在谈论队列方面的TTL。 但是对消费者的控制/配置告诉我只想消耗它5次,然后将其发送到另一个队列。 这可以实现吗?

所以是的,我相信这可以做到。 您需要缓存收到的消息的传递标记,并跟踪拒绝计数。 一旦特定消息的拒绝计数很大,然后将该消息发布到另一个队列。 您还需要向RabbitMQ确认收到的消息,并可能创建一条新消息(带有新的传递标签)并发布它。

这可以在应用程序级别或通过TTL和死信交换完成 。 在经纪人方面你不想知道你想要什么(我认为没有理由你不能在消费者方面做到这一点)

PS:只是让评论更加明显

主要思想是创建自定义ttl属性(在TCP / IP包中为a-la hops计数),并在每次消息消耗时减少它(并使用新的props重新发布消息体)。 当它达到零时 – 将其发布到其他队列。