同步調用優點:
時效性強,打電話、直播,很快可以得到結果
同步調用的問題:
耦合度高
性能和吞吐能力差
有額外的資源消耗
有級聯失敗的問題
異步:
對高并發有要求的功能使用異步
優點:
耦合度低
性能和吞吐能力高
流量削峰(對秒殺來說很重要)
故障隔離
缺點:
異步時效性沒有同步好
依賴于Broker可靠性、安全性等要求高·1—————》Broker—>mq消息隊列
架構明顯變複雜了
場景:
雙11是購物狂節,使用者下單後,訂單系統需要通知庫存系統,傳統的做法就是訂單系統調用庫存系統的接口
訂單系統:使用者下單後,訂單系統完成持久化處理,将消息寫入消息隊列,傳回使用者訂單下但成功。
庫存系統:訂閱訂單的消息,擷取下單資訊,進行庫操作。就算庫存系統出現故障,消息列隊也能保證消息的可靠投遞,不會導緻消息丢失
流量削峰
場景:秒殺活動,一般會因為流量過大,導緻應用挂掉,為了解決這個問題,一般在應用前端加入消息隊列
作用:
1,可以控制活動人數,超過此門檻值的訂單直接丢棄
2,可以緩解短時間的高流量壓垮應用(應用程式安自己的最大處理能力擷取訂單)