RabbitMQ如何保證消息的順序性

從根本上說,異步消息是不應該有順序依賴的。在MQ上估計是沒法解決。要實現嚴格的順序消息,簡單且可行的辦法就是:保證生產者 - MQServer - 消費者是一對一對一的關係。

如果有順序依賴的消息,要保證消息有一個hashKey,類似於數據庫表分區的的分區key列。保證對同一個key的消息發送到相同的隊列。A用戶產生的消息(包括創建消息和刪除消息)都按A的hashKey分發到同一個隊列。只需要把強相關的兩條消息基於相同的路由就行了,也就是說經過m1和m2的在路由表裏的路由是一樣的,那自然m1會優先於m2去投遞。而且一個queue只對應一個consumer。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章