今天看到一篇博文中,讲到了这个问题,问题描述是这样的:
假设,A和B通过消息队列通信,A发了先后发了2条消息m1和m2。A发出的顺序是m1、m2,结果m2先到达队列,m1后进的,那么在队列中m2在前m1在后,假设这两条消息是有依赖关系的,必须是先m1再m2,那么B可能先接收到m2后接收到m1,问这个时候怎么办?
一般队列按收到顺序处理
消息本身是由业务定义的,你完全可以在消息里指明依赖
您的意思是:我在入队列前就已经排好顺序
了对吧?
@BUTTERAPPLE:
队列保证按接受的顺序出队,业务上的依赖不属于他的职责
你可以在处理消息的地方处理依赖关系
是否能用类似于TCP的协议头中的ACK 来确定消息的顺序呢?