如果我使用x-max-length
声明队列,则一旦达到限制,所有邮件都将被删除或死信。
我想知道如果不是丢弃或死信,RabbitMQ可以像Memory/Disk watermarks那样激活流量控制机制。原因是因为我想保留消息顺序(提交时; FIFO行为),并且会更加方便地减慢生产者的速度。
答案 0 :(得分:0)
尝试在应用程序级别上实现队列长度限制。比如说,递增/递减Redis键并检查它的最大值。它可能不如本机RabbitMQ机制那么准确,但它在单独的队列/交换上工作得很好而不会影响同一代理上的其他队列。
PS 或者,在某些任务中,RabbitMQ不是最佳选择,老式关系数据库(MySQL,PostgreSQL或其他任何你喜欢的)工作效果最好,但RabbitMQ仍然可以用作事件总线。
答案 1 :(得分:0)