訊息中介軟體的意義和應用場景

2021-07-09 18:14:31 字數 570 閱讀 5897

訊息中介軟體一般兩個功能,解耦和非同步處理,分別舉個例子吧

解耦合:

比如我們做乙個微博產品中的好友系統,就很需要使用訊息中介軟體

當我們新增乙個關注的時候, 涉及以下幾個子系統

推薦系統,需要根據你關注的人給你做資料分析

搜尋系統,需要根據你的資料建立索引

feed系統,需要根據你關注的人,傳送一條新鮮事

統計系統 用於資料統計,了解產品情況

而如果直接在加關注的流程裡進行這些操作,可能帶來風險,所以,會引入mq來解耦合,因此就像你說的,一般是 "單向傳輸" 的(當然這不是絕對的,取決於你系統複雜度),而且發往mq的資料一般都不大,比如 from_uid, to_uid 就行了,一般都不會很大,如果傳送的資料不滿足你的要求,這個時候,需要呼叫好友系統提供的介面了

非同步處理:

有的時候,我們乙個操作可能會耗時比較久,所以,並不會在主要業務流程裡進行處理

比如,我們在刪除乙個使用者的時候,可能會有很多關聯資料的操作,為了盡快的響應以及解耦合,我們會將這個訊息傳送給其他系統,讓它們根據需求自己處理  

訊息中介軟體應用場景

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

訊息中介軟體的應用場景

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

訊息中介軟體 使用場景

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