队列中的多个 STOMP 消费者处理每条消息一次

问题描述 投票:0回答:1

我在 RabbitMQ 上有一个队列,并且有一个应用程序通过 STOMP 从该队列消费。我希望我的应用程序有 2 个或更多实例从同一个队列中消费。

如何才能消耗队列中的每条消息一次且仅一次?例如,如果队列中有消息 A、B、C,我希望我的应用程序像这样使用这些消息:

  • 实例1:A
  • 实例2:B,C

不是这样的:

  • 实例1:A、B、C
  • 实例2:A、B、C
rabbitmq stomp
1个回答
0
投票

您本身无法在 RabbitMQ 中配置“STOMP 队列”。 STOMP 规范 没有定义目的地的传递语义应该是什么。正如 RabbitMQ 文档 中所述,您可以使用一些不同的前缀来获取您想要的语义,例如:

  • /exchange
    --
    SEND
    到任意路由键,
    SUBSCRIBE
    到任意绑定模式;
  • /queue
    --
    SEND
    SUBSCRIBE
    到 STOMP 网关管理的队列;
  • /amq/queue
    --
    SEND
    SUBSCRIBE
    在 STOMP 网关外部创建的队列;
  • /topic
    --
    SEND
    SUBSCRIBE
    适用于短暂和持久的主题;
  • /temp-queue/
    -- 创建临时队列(仅在
    reply-to
    标头中)。
© www.soinside.com 2019 - 2024. All rights reserved.