参见https://www.cnblogs.com/jack1995/p/10908814.html
导读:
保证消息的顺序执行其实就是发现消息消费和传递的过程中没有按顺序的地方,然后想办法进行同步的过程。
为什么要保证顺序
比如业务操作会有顺序,某个业务新增->修改-删除,如果顺序乱了就会造成数据不一致性
出现顺序错乱的场景
第一种:一个queue多个consummer
无法保证多个consummer消费的顺序
第二种:一个queue一个consummer,但是consummer内部进行了多线程消费
无法保证多个线程之间消费的顺讯
如何保证顺序消费
针对第一种:改为一个queue只由一个consummer消费,这样就一个consummer消费的顺序性
针对第二种:根据订单的id进行哈希值映射到一个worker上消费