代码之家  ›  专栏  ›  技术社区  ›  Denni

Masstransit消息消费订单

  •  0
  • Denni  · 技术社区  · 7 年前


    当“P”发布消息“1”“2”“3”时,我预计消费者会使用顺序为“123”的消息。但实际上,消费顺序可能是“132”、“312”等等。
    我已经配置了与并发相关的设置,但它不起作用
    concurrency settings


    :是否有一种配置可以阻止“B”在“a”成功使用消息之前获取消息?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   gertjvr    7 年前

    无法保证按顺序处理消息,因此应不惜一切代价避免。

    队列中的消息是FIFO,但当您有多个具有预取设置的消费者时,每个消费者A和B将从队列中拉出x条消息,并根据所需时间进行处理,消费者A可以在消费者B完成之前返回更多消息,并无序处理消息,这是常见情况。

    如果您确实需要这样做,那么使用并发限制为1的单个使用者集将以吞吐量为代价按顺序处理消息。