首页 > 解决方案 > 同步队列的所有消费者以一次只处理一条消息

问题描述

我正在运行一个 Spring Cloud Stream 应用程序,使用来自 RabbitMq 的消息。我想实现一种行为,其中具有三个消费者实例的给定队列仅向其中任何一个传递一条消息,并等待下一条传递,直到当前被确认(所有消费者之间的某种同步)。

我认为这可以使用启用全局选项的https://www.rabbitmq.com/consumer-prefetch.html来完成,但我找不到使用 Spring Cloud Stream 实现此目的的方法。任何帮助将不胜感激。

标签: javarabbitmqamqpspring-cloud-stream

解决方案


Spring 为每个消费者使用单独的通道,因此全局通道预取不会产生任何影响。

请记住,即使它被支持,它也只有在消费者都在同一个实例中时才会起作用。


推荐阅读