參見https://www.cnblogs.com/jack1995/p/10908814.html
導讀:
保證消息的順序執行其實就是發現消息消費和傳遞的過程中沒有按順序的地方,然后想辦法進行同步的過程。
為什么要保證順序
比如業務操作會有順序,某個業務新增->修改-刪除,如果順序亂了就會造成數據不一致性
出現順序錯亂的場景
第一種:一個queue多個consummer
無法保證多個consummer消費的順序
第二種:一個queue一個consummer,但是consummer內部進行了多線程消費
無法保證多個線程之間消費的順訊
如何保證順序消費
針對第一種:改為一個queue只由一個consummer消費,這樣就一個consummer消費的順序性
針對第二種:根據訂單的id進行哈希值映射到一個worker上消費