爲什麼分佈式一定要有消息隊列

消息隊列的作用解耦、異步、削峯

1、解耦

傳統模式

一個班級,班裏有新學生報道,班主任要修改班裏學生名單,有什麼事情都問班主任,班主任很忙。

後來班裏設了一個班長,班主任有什麼消息通知班長,大家有什麼消息直接問班長就行了。

中間件模式

中間件的優點:將系統A將消息寫入消息隊列就行,其他系統需要什麼消息,找消息隊列訂閱,從而系統A不需要做什麼修改

 

異步

小王找老師修改ppt,小李找老師假條簽字,小趙找老師補習功課,小錢找老師開證明。

傳統方式可能得一個個來吧,可能簽字蓋章時間很快,那也得等其他同學弄完,有個先來後到。

中間件模式

異步的話,可以不按照順序進行,讓班長給同學簽字蓋章,老師給同學修改ppt和補作業,這樣有的同學就不用等太久啦。

中間件優點:將消息寫入消息隊列,非必要的業務邏輯以異步的方式運行,加快響應速度。

 

削峯

傳統模式

傳統模式的缺點:併發量大的時候,所有的請求直接懟到數據庫,造成數據庫連接異常

放假前一天,好多同學過來找老師,老師忙的飯都顧不得吃,

中間件模式:

老師忙不過來啊,找來班長,班長在門口告訴大家彆着急,一個個來,先收集好大家的材料,按照順序,一個個見老師。

中間件模式優點:

系統A會慢慢的按照數據庫處理的併發量,從消息隊列中慢慢拉取消息。在生產中,這個短暫的高峯期積壓是允許的。

 

借鑑來源

https://blog.csdn.net/mrs_haining/article/details/80625833

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