我有一个发布端点' P'和两个消费者' A' B'
当' P'发布消息' 1' ' 2' ' 3',我希望消费者会使用“{”的订单消费。但实际上,消费订单可能是“132”,“' 312'等等。
我已经配置了与并发相关的设置,但它没有工作
concurrency settings
问题:是否存在可能阻止' B'从接收消息直到' A'消息成功消息?
由于
答案 0 :(得分:1)
无法保证按顺序处理消息,应不惜一切代价避免。
队列中的消息是FIFO,但是当你有多个消费者使用预取设置时,每个消费者A和B都会从队列中提取x消息,并根据消息需要多长时间来处理它们,消费者A可以返回在消费者B完成之前获得更多消息,并且不按顺序处理消息,这是常见的情况。
消息重试也可能导致消息无序处理。
这样说,如果你确实需要这个,那么使用并发限制为1的单个消费者集将按顺序处理消息,但代价是吞吐量。