ActiveMQ(一)简介与架构
-
消息中間件的概念
消息中間件,簡言之是一種在分布式系統(tǒng)中應(yīng)用程序借以傳輸消息的媒介。中間件位于客戶機/ 服務(wù)器的操作系統(tǒng)之上,管理計算機資源和網(wǎng)絡(luò)通訊,是連接兩個獨立應(yīng)用程序或獨立系統(tǒng)的軟件,執(zhí)行中間件的一個關(guān)鍵途徑是信息傳遞;
面向消息的中間件(Message Oriented Middleware,MOM)較好的解決了3個問題。
一是:發(fā)送者將消息發(fā)送給消息服務(wù)器,消息服務(wù)器將消息存放在若干隊列中,在合適的時候再將消息轉(zhuǎn)發(fā)給接收者。這種模式下,發(fā)送和接收是異步的,發(fā)送者無需等待;降低了耦合度
二是,發(fā)送者和消費者的生命周期未必相同:發(fā)送消息的時候接收者不一定運行,接收消息的時候發(fā)送者也不一定運行;
三是:一對多通信:對于一個消息可以有多個接收者。
-
消息中間件的應(yīng)用
消息中間件適用于需要可靠的數(shù)據(jù)傳送的分布式環(huán)境。采用消息中間件機制的系統(tǒng)中,不同的是它常被用來對象之間通過傳遞消息來激活對方的事件,完成相應(yīng)的操作。發(fā)送者將消息發(fā)送給消息服務(wù)器,消息服務(wù)器將消息存放在若干隊列中,在合適的時候再將消息轉(zhuǎn)發(fā)給接收者。消息中間件能在不同平臺之間通信,屏蔽掉各種平臺及協(xié)議之間的特性,實現(xiàn)應(yīng)用程序之間的協(xié)同,其優(yōu)點在于能夠在客戶和服務(wù)器之間提供同步和異步的連接,并且在任何時刻都可以將消息進行傳送或者存儲轉(zhuǎn)發(fā),這也是它比遠程過程調(diào)用更進一步的原因。
毋庸置疑,只要有消息需要傳送的地方都離不開消息中間件,它的特點是顯而易見的;
其中,在SOA的應(yīng)用中隨處可以見到消息中間件的影子,信息化系統(tǒng)的“結(jié)構(gòu)化和模塊化”要求越來越明顯,將原有的系統(tǒng)或者新建系統(tǒng)向模塊化靠攏,必然需要一類軟件將這些“模塊”有機而又低藕合的串接起來,消息中間件可以成為不同模塊之間數(shù)據(jù)傳輸?shù)臉蛄?#xff0c;提供數(shù)據(jù)傳輸?shù)目煽啃院透咝?/p>
-
消息中間件應(yīng)用場景
????分布式環(huán)境(運營數(shù)據(jù)分析利用系統(tǒng))
應(yīng)用特點:
-
客戶機服務(wù)器之間的同步和異步的連接
-
不同平臺之間通信
-
優(yōu)于遠程調(diào)用
-
ACTIVEMQ為什么能脫穎而出?
ActiveMQ是一種開源的,實現(xiàn)了JMS1.1規(guī)范的,面向消息(MOM)的中間件
主要特點:
穩(wěn)定性:失敗重連機制failover,持久化服務(wù),容錯機制,多種恢復(fù)機制
高效性:支持多種傳送協(xié)議TCP,SSL,NIO,UDP,集群服務(wù)消息在多個代理之間轉(zhuǎn)發(fā)防止消息丟失,支持超快的JDBC消息持久化和高效的日志系統(tǒng)
可擴展:activemq的高級特性都可以配置的形式來表現(xiàn),很好的實現(xiàn)例如游標(biāo),容錯機制,消息group及監(jiān)控服務(wù),同時擴展了很多成熟的框架spring使得其使用更加成熟
高級特性
消息群組(Message Groups)、虛擬端點(Virtual Destinations)、通配符(Wildcards)、復(fù)合端點(Composite Destinations)
ActiveMQ整體架構(gòu)
如上圖所示,
ActiveMQ主要涉及到5個方面:
傳輸協(xié)議
消息域:
消息存儲
Cluster ?(集群)
Monitor (監(jiān)控)
傳輸協(xié)議:消息之間的傳遞,無疑需要協(xié)議進行溝通,啟動一個ActiveMQ打開了一個監(jiān)聽端口, ActiveMQ提供了廣泛的連接模式,其中主要包括SSL、STOMP
? ? ? ? 、XMPP;ActiveMQ默認的使用的協(xié)議是openWire,端口號:61616;
消息域:ActiveMQ主要包含Point-to-Point (點對點),Publish/Subscribe Model (發(fā)布/訂閱者),其中在Publich/Subscribe 模式下又有Nondurable subscription和 ? ? ?durable subscription (持久化訂閱)2種消息處理方式
消息存儲:在消息傳遞過程中,部分重要的消息可能需要存儲到數(shù)據(jù)庫或文件系統(tǒng)中,當(dāng)中介崩潰時,信息不回丟失
Cluster ?(集群):?最常見到 集群方式包括network of brokers和Master Slave;
Monitor (監(jiān)控) :ActiveMQ一般由jmx來進行監(jiān)控,這部分的內(nèi)容我們以后討論;
總結(jié)
以上是生活随笔為你收集整理的ActiveMQ(一)简介与架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hudson:持续集成工具的安装、使用
- 下一篇: 安卓中AIDL的使用方法快速入门