訊息中介軟體的使用場景

2021-09-05 12:50:47 字數 1419 閱讀 7498

一般認為,採用訊息傳送機制/訊息佇列 的中介軟體技術,進行資料交流,用在分布式系統的整合。

解決分布式系統之間訊息的傳遞。

電商場景:使用者下單減庫存,呼叫物流系統,系統擴充後服務化和業務拆分。系統互動,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的強項,大資料的日誌處理非它莫屬,我沒用過,只知道它很強大。非常強大。

五、純粹的訊息通訊

訊息中介軟體 使用場景

訊息佇列在實際應用中包括如下四個場景 具體場景 使用者使用qq相簿上傳一張,人臉識別系統會對該進行人臉識別,一般的做法是,伺服器接收到後,上傳系統立即呼叫人臉識別系統,呼叫完成後再返回成功,如下圖所示 該方法有如下缺點 人臉識別系統被調失敗,導致上傳失敗 延遲高,需要人臉識別系統處理完成後,再返回給...

訊息中介軟體應用場景

訊息佇列中介軟體是分布式系統中重要的元件,主要實現非同步訊息,應用解耦,流量削峰及訊息通訊等功能。下面舉例說明在實際應用中訊息佇列是如何使用的。以使用者註冊,並且需要註冊郵件和簡訊為例。使用者註冊後,需要傳送註冊郵件和註冊簡訊。傳統的做法有兩種 序列和並行方式。如下圖所示 1 序列方式 將註冊資訊寫...

訊息中介軟體的應用場景

今天基於rabbitmq的學習聊一下他的應用場景 1 work queue 工作佇列模式 例如我們有的時候有傳送簡訊的的服務,同事要傳送簡訊的時候比較多,那麼一台服務吃不消,這樣的話我們就可以使用這種模式來進行削峰填谷。如下圖 p是生產者 這個端要傳送訊息的量特別大 加入要傳送1000 並且傳送訊息...