具有流控制的RabbitMQ队列长度限制

具有流控制的RabbitMQ队列长度限制,rabbitmq,Rabbitmq,如果我声明了一个x-max-length的队列,那么一旦达到限制,所有消息都将被丢弃或死信 我想知道RabbitMQ是否可以激活流控制机制,而不是像。原因是我想在提交时保留消息顺序;先进先出(FIFO)行为,将更方便地减慢生产者的速度。尝试在应用程序级别实现队列长度限制。比如,递增/递减Redis键并检查其最大值。它可能不如本机RabbitMQ机制准确,但它在单独的队列/交换上运行得非常好,而不会影响同一代理上的其他队列/交换 另一方面,在某些任务中,RabbitMQ不是最佳选择,老式关系数据库

如果我声明了一个x-max-length的队列,那么一旦达到限制,所有消息都将被丢弃或死信


我想知道RabbitMQ是否可以激活流控制机制,而不是像。原因是我想在提交时保留消息顺序;先进先出(FIFO)行为,将更方便地减慢生产者的速度。

尝试在应用程序级别实现队列长度限制。比如,递增/递减Redis键并检查其最大值。它可能不如本机RabbitMQ机制准确,但它在单独的队列/交换上运行得非常好,而不会影响同一代理上的其他队列/交换


另一方面,在某些任务中,RabbitMQ不是最佳选择,老式关系数据库MySQL、PostgreSQL或任何您喜欢的工具都是最佳选择,但RabbitMQ仍然可以用作事件总线。

上有两个与此主题相关的未决问题。我建议在这里表达您的兴趣:


是的,例如,我知道我可以在应用程序级别进行节流。尽管我在查看RabbitMQ是否已经在代理本身中实现了这种机制,但请注意,RabbitMQ对channel.flow的支持有限。事实上,服务器不支持使用active=true.And channel.flow阻止流在通道级别工作,所以看起来无论如何它都不是您的选项。