訊息中間件的使用場景有:1、非同步處理;2、應用的解耦;3、流量的削峰;4、日誌處理;5、純粹的訊息通訊。
訊息中介軟體的使用場景有:
為什麼使用訊息中間件
解決分散式系統之間訊息的傳遞。
電商場景:用戶下單減庫存,呼叫物流系統,系統擴充後服務化和業務分割。系統交互,y一般用RPC(遠端過程調用)。如果系統擴充到有幾十個接口,訊息中間件來解決問題。
訊息中間件有些什麼使用場景
一、非同步處理
用戶註冊(50ms),還需發送郵件(50ms)和簡訊(50ms)
序列:(150ms)用戶註冊—》發送郵件----」發送簡訊
並行(100ms):用戶註冊—》發送郵件
a)、|----》發送簡訊
訊息中間件(56ms):
用戶註冊(50ms)—》(6ms)訊息中間件《-----寄電子郵件
說明:一個使用者註冊流程,包含下述業務:
1、註冊處理以及寫資料庫、
2、發送註冊成功的手機簡訊
3、發送註冊成功的郵件訊息
我們使用舊方法的話,則會註冊完執行發送簡訊再執行郵件發送。太low
一般使用的是:在註冊成功後,使用兩個執行緒去做發送郵件,發送簡訊操作。
如果用訊息中間件:則將兩個執行緒建立這些事情省了,直接傳送訊息給訊息中間件,然後讓郵件服務和簡訊服務自己去訊息中間件裡面去取訊息,然後取到訊息後再自己做對應的業務操作。就是這麼方便
二、應用的解耦
a)、訂單系統---》庫存系統(強耦合)
b)、訊息中間件:訂單系統---》訊息中間件《----庫存系統(解耦)
說明:用戶購買一筆訂單,訂單成交—》調用庫存系統—1---》返回訂單系統,此時算一個正常業務。還有不正常的業務,就是用戶訂單完成後,訂單系統並不去滴啊用庫存系統-1操作,而是調用訊息中間件,寫入一個訂單資訊。又庫存系統自己去訊息中間件上去獲取,然後更新庫存,這樣能夠減少互聯網型應用追求的快這一屬性。而庫存系統讀取訂單間庫存其實這個操作也是非常快的,所以有訊息中間件對解耦來說也是一個不錯的方向。
三、流量的削峰
a)、用戶請求-----》秒殺應用程式
b )、應用程式的前端加入訊息佇列
c)、 使用者請求-----》訊息佇列《----秒殺應用程式
說明:例如,系統舉行秒殺活動,熱門商品。流量蜂擁而至 100件商品,10萬人擠進來怎麼辦,10萬秒殺的操作,放入訊息佇列。秒殺應用程式處理訊息佇列中的10萬個請求中的100個,其他的打回,通知失敗。流量峰值控制在訊息佇列處,秒殺應用不會瞬間被懟死.
四、日誌處理
a、錯誤日誌- --》訊息佇列《----日誌處理
b)、使用者行為日誌--》訊息佇列(kafka)《-----日誌的儲存或串流處理
說明:日誌處理可能隨時kafka的強項,大數據的日誌處理非它莫屬,我沒用過,只知道它很強大。非常強大。
五、純粹的訊息通訊
以上是訊息中間件的使用場景有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!