從根本上說渠缕,異步消息是不應(yīng)該有順序依賴的。在MQ上估計(jì)是沒法解決懈玻。要實(shí)現(xiàn)嚴(yán)格的順序消息女轿,簡(jiǎn)單且可行的辦法就是:保證生產(chǎn)者 - MQServer - 消費(fèi)者是一對(duì)一對(duì)一的關(guān)系箭启。
如果有順序依賴的消息,要保證消息有一個(gè)hashKey蛉迹,類似于數(shù)據(jù)庫表分區(qū)的的分區(qū)key列。保證對(duì)同一個(gè)key的消息發(fā)送到相同的隊(duì)列放妈。A用戶產(chǎn)生的消息(包括創(chuàng)建消息和刪除消息)都按A的hashKey分發(fā)到同一個(gè)隊(duì)列北救。只需要把強(qiáng)相關(guān)的兩條消息基于相同的路由就行了,也就是說經(jīng)過m1和m2的在路由表里的路由是一樣的芜抒,那自然m1會(huì)優(yōu)先于m2去投遞珍策。而且一個(gè)queue只對(duì)應(yīng)一個(gè)consumer。