【问题标题】:MassTransit, RabbitMQ - FIFO dequeue supportMassTransit, RabbitMQ - FIFO 出队支持
【发布时间】:2015-01-28 21:26:09
【问题描述】:

我试图证明 MassTransit 以与 rabbitmq 接收消息相同的顺序 (FIFO) 传递消息。到目前为止,我没有运气。 MT 似乎随机地从队列中传递消息。我已经尝试将这两个总线配置选项都设置为 1:

SetConcurrentReceiverLimit() SetConcurrentConsumerLimit()

...似乎没什么区别。

如何确保通过 MassTransit 进行 FIFO 交付?

【问题讨论】:

    标签: c# rabbitmq fifo masstransit


    【解决方案1】:

    如果您将 ConcurrentConsumerLimit 设置为 1(默认情况下接收器限制为 1),并在 URI 上设置 prefetch=1,则它应该在没有引发消费者异常的情况下按顺序 FIFO 交付。老实说,即使 prefetch > 1(这对于性能而言很重要),它也应该是有序的。

    此外,如果您使用一些示例代码执行此操作,请发布示例代码并确保您的生产者和消费者进程正在侦听不同的队列。

    x.ReceiveFrom(uri) // uri should be unique per bus instance
    

    【讨论】:

    【解决方案2】:

    您还需要使用 RabbitMQ 设置预取。 MassTransit capping message rates at 10 显示了在队列 URI 上使用预取配置的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多