MQ的應用場景(異步處理)


異步處理:

  場景說明:用戶注冊后,需要發注冊郵件和注冊短信,傳統的做法有兩種 1,串行的方式 2,並行的方式

  • 串行方式:將注冊信息寫入數據庫后,發送注冊郵件,在發送注冊短信,以上三個任務全部完成之后才返回給客戶端。這有一個問題是,郵件,短信並不是必須的,它只是一個通知,而這總做法讓客戶端等待沒有必要等待的東西

  

 

 

 

  • 並行方式:將注冊信息寫入數據庫后,發送郵件的同時,發送短信,以上三個任務完成后,返回給客戶端,並行的方式能提高處理的時間

  

 

  • 消息列隊:引入消息隊列后,把發送郵件,短信不是必要的業務邏輯異步處理

 

 

應用解耦

 

  場景:雙11是購物狂節,用戶下單后,訂單系統需要通知庫存系統,傳統的做法就是訂單系統調用庫存系統的接口

 

    

 

  這總做法有一個缺點:

  當庫存系統出現故障時訂單系統就會失敗。訂單系統和庫存系統高耦合

  消息隊列:

    

 

  訂單系統:用戶下單后,訂單系統完成持久化處理,將消息寫入消息隊列,返回用戶訂單下但成功。

  庫存系統:訂閱訂單的消息,獲取下單信息,進行庫操作。就算庫存系統出現故障,消息列隊也能保證消息的可靠投遞,不會導致消息丟失

流量削峰

  場景:秒殺活動,一般會因為流量過大,導致應用掛掉,為了解決這個問題,一般在應用前端加入消息隊列

  作用:

    1,可以控制活動人數,超過此閾值的訂單直接丟棄

    2,可以緩解短時間的高流量壓垮應用(應用程序安自己的最大處理能力獲取訂單)

      

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM