前言:這是中介軟體乙個系列的文章之一,有需要的朋友可以看看這個系列的其他文章:
訊息中介軟體系列
一、訊息中介軟體的基本了解
訊息中介軟體系列二、windows下的activemq和rabbitmq的安裝
訊息中介軟體系列三、jms和activemq的簡單使用
訊息中介軟體系列
四、認識amqp和rabbiymq的簡單使用
訊息中介軟體系列五、rabbit訊息的確認機制
訊息中介軟體系列六,rabbit與spring整合實戰
沒有標準定義,一般認為,採用訊息傳送機制/訊息佇列 的中介軟體技術,進行資料交流,用在分布式系統的整合
解決分布式系統之間訊息的傳遞。
電商場景:
使用者下單減庫存,呼叫物流系統,系統擴充後服務化和業務拆分。系統互動,一般用rpc(遠端過程呼叫)。如果系統擴充到有幾十個介面,訊息中介軟體來解決問題。
場景說明:使用者註冊後,需要發註冊郵件和註冊簡訊。傳統的做法有兩種 1.序列的方式;2.並行方式
(1)序列方式:將註冊資訊寫入資料庫成功後,傳送註冊郵件,再傳送註冊簡訊。以上三個任務全部完成後,返回給客戶端
(2)並行方式:將註冊資訊寫入資料庫成功後,傳送註冊郵件的同時,傳送註冊簡訊。以上三個任務完成後,返回給客戶端。與序列的差別是,並行的方式可以提高處理的時間
假設三個業務節點每個使用50毫秒鐘,不考慮網路等其他開銷,則序列方式的時間是150毫秒,並行的時間可能是100毫秒。
小結:如以上案例描述,傳統的方式系統的效能(併發量,吞吐量,響應時間)會有瓶頸。如何解決這個問題呢?
引入訊息佇列,將不是必須的業務邏輯,非同步處理。改造後的架構如下:
按照以上約定,使用者的響應時間相當於是註冊資訊寫入資料庫的時間,也就是50毫秒。註冊郵件,傳送簡訊寫入訊息佇列後,直接返回,因此寫入訊息佇列的速度很快,基本可以忽略,因此使用者的響應時間可能是50毫秒。因此架構改變後,系統的吞吐量提高到每秒20 qps。比序列提高了3倍,比並行提高了兩倍
場景說明:使用者下單後,訂單系統需要通知庫存系統。傳統的做法是,訂單系統呼叫庫存系統的介面。如下圖
傳統模式的缺點:
如何解決以上問題呢?引入應用訊息佇列後的方案,如下圖:
流量削鋒也是訊息佇列中的常用場景,一般在秒殺或團搶活動中使用廣泛
應用場景:秒殺活動,一般會因為流量過大,導致流量暴增,應用掛掉。為解決這個問題,一般需要在應用前端加入訊息佇列。
日誌處理是指將訊息佇列用在日誌處理中,比如kafka的應用,解決大量日誌傳輸的問題。架構簡化如下
(2)logstash:做日誌解析,統一成json輸出給elasticsearch
(3)elasticsearch:實時日誌分析服務的核心技術,乙個schemaless,實時的資料儲存服務,通過index組織資料,兼具強大的搜尋和統計功能
(4)kibana:基於elasticsearch的資料視覺化元件,超強的資料視覺化能力是眾多公司選擇elk stack的重要原因
訊息通訊是指,訊息佇列一般都內建了高效的通訊機制,因此也可以用在純的訊息通訊。比如實現點對點訊息佇列,或者聊天室等
點對點通訊:
客戶端a和客戶端b使用同一佇列,進行訊息通訊。
聊天室通訊:
客戶端a,客戶端b,客戶端n訂閱同一主題,進行訊息發布和接收。實現類似聊天室效果。
以上實際是訊息佇列的兩種訊息模式,點對點或發布訂閱模式。模型為示意圖,供參考。
訊息中介軟體(之一) 訊息中介軟體設計
什麼是訊息中介軟體 訊息中介軟體常見協議 訊息持久化 訊息分發 高可用策略 高可靠利用高效,可靠的訊息傳遞機制進行平台無關的資料交流 基於資料通訊來進行分布式系統的整合 通過提供訊息傳遞和訊息排隊模型,在分布式環境下擴充套件程序間的通訊。跨系統資料傳遞,高併發流量削峰,資料非同步處理等。active...
訊息中介軟體
1.訊息的優先順序 2.訊息排序 3.訊息過濾 4.訊息持久化 5.訊息重試 6.事務的支援 7.broker滿 生產者,佇列,消費者 訊息佇列的優點 1 解耦2 非同步訊息,系統響應 在jms中,有兩種訊息模型 點對點模式和發布訂閱模式。1.在點對點模式中 有三種角色 1 訊息佇列,傳送者,接受者...
訊息中介軟體
如何理解訊息中介軟體?訊息中介軟體是儲存訊息的乙個容器,與資料庫不同的是資料庫儲存的資料是可以被修改的,而訊息中介軟體一般不會被修改 訊息中介軟體在消費的生產者與消費者產生,相當於乙個中間人的角色,提供了路由保證訊息的傳遞,如果消費者不能及時接收,訊息會保留下來,知道消費者上線 保證在存活期內 訊息...