Masstransit消息消费订单

时间:2017-08-22 03:11:54

标签: publish-subscribe servicebus masstransit

我有一个发布端点' P'和两个消费者' A' B' 当' P'发布消息' 1' ' 2' ' 3',我希望消费者会使用“{”的订单消费。但实际上,消费订单可能是“132”,“' 312'等等。
我已经配置了与并发相关的设置,但它没有工作 concurrency settings


问题:是否存在可能阻止' B'从接收消息直到' A'消息成功消息?

由于

1 个答案:

答案 0 :(得分:1)

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

队列中的消息是FIFO,但是当你有多个消费者使用预取设置时,每个消费者A和B都会从队列中提取x消息,并根据消息需要多长时间来处理它们,消费者A可以返回在消费者B完成之前获得更多消息,并且不按顺序处理消息,这是常见的情况。

消息重试也可能导致消息无序处理。

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