本文旨在對消息中間件的主要模塊作簡單介紹,消息中間件主要模塊以下圖:算法
隊列管理器網絡
負責建立和刪除隊列並控制隊列的屬性,spa
由消息路由和排隊模塊、消息通道代理模塊和系統管理模塊組成。代理
消息路由和排隊模塊日誌
負責消息傳遞的方向,算法以下中間件
(1)經過消息隊列接口接受消息;接口
(2)檢查消息目的隊列名中的隊列管理器名是不是本地的。若是是,則將該消息放入對應隊列名的本地應用隊列中,而後轉到(5)。不然,將該消息放入對應隊列管理器名的傳輸隊列中;隊列
(3)消息通道代理模塊負責將該消息傳遞給遠程中間件系統的隊管理器;事件
(4)遠程中間件系統的隊列管理器將該消息放入對應隊列名的應用隊列中;路由
(5)應用程序經過消息隊列接口從應用隊列中獲取該消息。
消息通道代理(MCA)模塊
負責消息的底層傳遞和網絡通道的故障恢復。
前者使用底層網絡協議(如TCP或UDP等),並採用握手方式來傳送消息,即接收方的MCA收到消息後向發送方的MCA發應答消息進行確認;
後者經過對網絡通道的探測來得到網絡中發生的故障,並負責故障的恢復,即發送消息失敗時,MCA暫時代爲存儲此消息。當網絡鏈接再次創建後,MCA自動重發這條消息,無需應用程序干涉。
系統管理模塊:管理和維護中間件系統,包括:
創建和刪除隊列通道;
生成和維護隊列路由表;
查詢通道的狀態和處理;
處理各類異常狀況;
日誌全部重要事件。