首頁 > 常見問題 > 主體

訊息中間件的使用場景有哪些

coldplay.xixi
發布: 2020-07-02 15:41:25
原創
7592 人瀏覽過

訊息中間件的使用場景有: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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板