我在 RabbitMQ 上有一个队列,并且有一个应用程序通过 STOMP 从该队列消费。我希望我的应用程序有 2 个或更多实例从同一个队列中消费。
如何才能消耗队列中的每条消息一次且仅一次?例如,如果队列中有消息 A、B、C,我希望我的应用程序像这样使用这些消息:
不是这样的:
您本身无法在 RabbitMQ 中配置“STOMP 队列”。 STOMP 规范 没有定义目的地的传递语义应该是什么。正如 RabbitMQ 文档 中所述,您可以使用一些不同的前缀来获取您想要的语义,例如:
--/exchange
到任意路由键,SEND
到任意绑定模式;SUBSCRIBE
--/queue
和SEND
到 STOMP 网关管理的队列;SUBSCRIBE
--/amq/queue
和SEND
在 STOMP 网关外部创建的队列;SUBSCRIBE
--/topic
和SEND
适用于短暂和持久的主题;SUBSCRIBE
-- 创建临时队列(仅在/temp-queue/
标头中)。reply-to