一、什麼時候使用MQ?
1、上游不關心多下游執行結果,例如:
支付成功的後續處理,包括給商戶賬戶入賬、後臺通知商戶結果等,只需確保消息通知到商戶入賬服務和商戶通知服務等就可。
會員/商戶 使用賬戶支付成功,給會員/商戶發送的郵件、短信通知等
...
2、數據驅動的任務依賴,例如:
商戶定時結算的處理:日終批量生成商戶待結算記錄後發起批量做結算打款處理,可以修改為 “日終時每生成一個待結算記錄後,發起一個消息通知到 結算打款服務,由打款服務處理處理待待結算記錄去打款”,可提升結算的效率、避免數據集中處理帶來的數據庫壓力,還可把兩個處理解耦。
...
3、上游關心下游執行結果但下游執行時間長,例如:
定時調度與(耗時的)定時任務處理,兩者之間可使用MQ,定時服務觸發定時事件發到消息隊列,定時任務監聽消息隊列,收到事件通知後處理任務,處理完成後放到結果消息隊列中。
二、什麼時候不使用MQ?
1、需要實時(毫秒級)獲得下游執行的結果。
閱讀更多 KeepWriting 的文章