• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺析開源ActiveMQ的特點(diǎn)及應(yīng)用

      2015-07-16 11:18:24郭小丹
      山東工業(yè)技術(shù) 2015年18期
      關(guān)鍵詞:實(shí)例應(yīng)用程序消息

      郭小丹

      (西藏民族大學(xué) 信息工程學(xué)院,陜西 咸陽(yáng) 712082)

      0 引言

      在數(shù)據(jù)交換過程中,數(shù)據(jù)傳輸是非常重要的一個(gè)步驟,消息中間件是實(shí)現(xiàn)系統(tǒng)內(nèi)部業(yè)務(wù)間的數(shù)據(jù)共享或者數(shù)據(jù)交換的基礎(chǔ),并且可以提供基于同步或者異步等多種數(shù)據(jù)通信模式,對(duì)系統(tǒng)的管理及后期的擴(kuò)展具有重要的作用,綜合分析,本論文中采用消息中間件完成信息的交互。

      ActiveMQ 屬于面向消息中間件的一種,開放源碼,基于 Apache 2.0 licenced 的發(fā)布并且實(shí)現(xiàn)了 JMS1.1 規(guī)范[1],提供的企業(yè)級(jí)消息通信的可靠性、穩(wěn)定性和安全性均較高,而且方便日后擴(kuò)展。目前,ActiveMQ 已經(jīng)被許多項(xiàng)目使用并且作為異步信息通信的核心。

      1 ActiveMQ概述

      ActiveMQ 旨在成為標(biāo)準(zhǔn)的、跨語(yǔ)言的以及跨平臺(tái)的消息中間件。在遵循 JMS 規(guī)范的基礎(chǔ)上還添加了一些其他特點(diǎn),主要有 Java 管理擴(kuò)展(Java Management Extensions,JMX 管理);信息組通信,負(fù)責(zé)將同一組信息發(fā)送給某個(gè)用戶端進(jìn)行處理;主從管理(Master/Salve),側(cè)重于系統(tǒng)的可靠性,屬于集群模式的一種,當(dāng)系統(tǒng)的主代理發(fā)生故障,為了使得消息中間件繼續(xù)正常運(yùn)行,可讓從代理代替主代理;有序信息管理,保證信息接收方有序接收并處理信息發(fā)送端發(fā)送的信息;延遲接收發(fā)送的信息,當(dāng)信息發(fā)送方發(fā)送了信息后,信息接收方?jīng)]有及時(shí)讀取其信息,當(dāng)信息接收方開啟連接后,ActiveMQ會(huì)將之前未被信息接收方讀取的信息推送給信息接收方;信息優(yōu)先級(jí),ActiveMQ按照信息優(yōu)先級(jí)的高低按序處理和投遞信息;消息持久化,通過設(shè)置將關(guān)鍵數(shù)據(jù)持久化到數(shù)據(jù)庫(kù)中,當(dāng)消息中間件掛了,可保留關(guān)鍵數(shù)據(jù),不至于丟失重要數(shù)據(jù)等。

      2 ActiveMQ 特性

      ActiveMQ 遵循 JMS 規(guī)范,其特性是對(duì) JMS1.1 規(guī)范的實(shí)現(xiàn),具體有如下特性:

      (1)是 Apache 默認(rèn)的 JMS provider,完全支持 J2EE1.4 和 JMS1.1規(guī)范;

      (2)支持 Spring,可以很容易的把 ActiveMQ 嵌入到 Spring 系統(tǒng)里,可以使用 Spring的各種特性例如 IOC、AOP 等;

      (3)支持多種傳輸協(xié)議,使得 ActiveMQ 具有更好的靈活性,可提供不同的連接;

      (4)支持消息持久化,提高了信息傳輸?shù)目煽啃裕?/p>

      (5)支持同步或者異步的消息傳輸模式;

      (6)支持多語(yǔ)言的客戶端,ActiveMQ 提供多種客戶端 APIs,例如 Java、C/C++、PHP、.NET 等,雖然 ActiveMQ 運(yùn)行于 Java 虛擬機(jī)上,但是其客戶端能夠選擇多種被支持的其他語(yǔ)言,使得 ActiveMQ 的使用具有很好的廣泛性[2];

      (7)保證了高性能的集群,ActiveMQ 的多個(gè) broker 可以同時(shí)工作,具有廣泛的不同的部署拓?fù)浣Y(jié)構(gòu),其拓?fù)浣Y(jié)構(gòu)如圖1所示,Broker,消息中間者即就是消息提供者,Broker 可以在 activemq.xml 文件中進(jìn)行配置,Store and Forward Network Federation,即消息路由分發(fā)系統(tǒng),消息中間者 Broker 接收到消息后,會(huì)通過這個(gè)系統(tǒng)對(duì)消息進(jìn)行存儲(chǔ)和分發(fā),因此 ActiveMQ 具有很好的可擴(kuò)展性。

      圖1 ActiveMQ的拓?fù)浣Y(jié)構(gòu)圖

      3 開源ActiveMQ的應(yīng)用

      程序的耦合性表示至少兩個(gè)以上的應(yīng)用程序之間互相的依賴關(guān)系,用來度量軟件結(jié)構(gòu)內(nèi)各模塊之間的緊密度。模塊間的緊密度越高,則其耦合性越強(qiáng),說明模塊間的獨(dú)立性就越差。程序的耦合性主要由軟件模塊之間方法的調(diào)用方式、接口的復(fù)雜性等決定的。系統(tǒng)的耦合性對(duì)于分布式應(yīng)用程序尤為重要。如果應(yīng)用程序的某個(gè)模塊發(fā)生變化時(shí)直接引起另外一個(gè)模塊的改變,那么這些模塊之間是緊耦合的;如果應(yīng)用程序的某個(gè)模塊的變化不會(huì)影響到其他模塊,那么這些模塊之間是松耦合的。

      對(duì)于 CORBA、COM、EJB 和 DCE 等會(huì)使用遠(yuǎn)程過程調(diào)用(RPC,Remote ProceduralCalls)技術(shù)的屬于緊耦合技術(shù),使用該技術(shù)的情況下,調(diào)用者需阻塞直至被調(diào)用者運(yùn)行結(jié)束返回反饋信息為止。目前有很多的應(yīng)用程序使用 RPC 而且很成功,但是緊耦合的應(yīng)用程序會(huì)出現(xiàn)因系統(tǒng)的小改動(dòng)而影響整個(gè)系統(tǒng)、系統(tǒng)交互是阻塞式等顯著的缺點(diǎn)。

      松耦合應(yīng)用程序不需要調(diào)用者進(jìn)入阻塞狀態(tài),松耦合系統(tǒng)可以處理應(yīng)用程序中的一些不可預(yù)見的變化。應(yīng)用程序的信息發(fā)送方只需要將信息發(fā)送給ActiveMQ 而不需要考慮 ActiveMQ 何時(shí)以哪種方法將信息傳輸給信息接收方,信息接收方也不用考慮信息的來源和信息的傳遞方式。ActiveMQ作為消息的中間件,支持不同編程語(yǔ)言的客戶端,也支持客戶端間的不同通信協(xié)議,可以實(shí)現(xiàn)多語(yǔ)言的復(fù)雜系統(tǒng)間的異步通信。所以,ActiveMQ 是一種靈活性較好、為多語(yǔ)言的交叉程序提供松耦合的消息中間件。根據(jù)以上特性,可以在以下場(chǎng)景使用 ActiveMQ:(1)如果兩個(gè)應(yīng)用程序之間需要通信就可以考慮使用 ActiveMQ,無論這兩個(gè)應(yīng)用程序是在同一臺(tái)主機(jī)上還是分布式的,ActiveMQ 支持消息的異步通信且能保證消息的成功投遞。如果多個(gè)應(yīng)用程序同時(shí)運(yùn)行于同一臺(tái)主機(jī)上,那么可以將 ActiveMQ 單獨(dú)部署在另一臺(tái)主機(jī)上,也可以將其內(nèi)嵌在 Java 應(yīng)用程序中。無論是訂閱模式還是點(diǎn)對(duì)點(diǎn)模式都不需要阻塞等待反饋。如果多個(gè)應(yīng)用程序是分布在多臺(tái)機(jī)器上,可以使用單一 ActiveMQ 實(shí)例或者多 ActiveMQ 實(shí)例,單一 ActiveMQ 實(shí)例中的應(yīng)用程序均與同一個(gè) ActiveMQ 進(jìn)行通信,ActiveMQ 能夠單獨(dú)運(yùn)行在一臺(tái)機(jī)器上,也能夠與一些應(yīng)用程序共同運(yùn)行在同一臺(tái)機(jī)器上;多ActiveMQ 實(shí)例中每個(gè)應(yīng)用程序都會(huì)實(shí)例化一個(gè) ActiveMQ,所有應(yīng)用程序收發(fā)信息都是通過本地ActiveMQ 實(shí)現(xiàn)的,然后這些 ActiveMQ 實(shí)例協(xié)同工作,信息根據(jù)每個(gè)應(yīng)用程序的需求通過若干 ActiveMQ 中間件被傳輸至信息的處理端;(2)適合于應(yīng)用是由多種語(yǔ)言集成的環(huán)境,ActiveMQ 由 Java 編寫,提供的客戶端 API 有 Java、C/C++、PHP、Ruby、.NET 等,當(dāng)需要集成多平臺(tái)下的多語(yǔ)言應(yīng)用時(shí),可以考慮使用 ActiveMQ,不同語(yǔ)言的客戶端間可以通過 ActiveMQ 實(shí)現(xiàn)通信;(3)RPC 的替代者,雖然使用 RPC 的客戶端很多且很成功,例如 ATM、信用卡系統(tǒng)等,但是系統(tǒng)規(guī)模會(huì)因其同步請(qǐng)求要被阻塞而受限,異步通信則可以加快系統(tǒng)的請(qǐng)求處理;(4)應(yīng)用間解耦,緊耦合系統(tǒng)尤其是在分布式環(huán)境下會(huì)存在一些問題,而松耦合系統(tǒng)的依賴性較小,對(duì)于未知變化的適應(yīng)能力較高,系統(tǒng)的部分改變不會(huì)影響整個(gè)系統(tǒng),同時(shí)系統(tǒng)應(yīng)用間的交互也簡(jiǎn)單,提高了系統(tǒng)的負(fù)載能力和可用性。

      4 結(jié)語(yǔ)

      分析了ActiveMQ的功能和特點(diǎn),并對(duì)它的幾個(gè)特性進(jìn)行總結(jié),指出ActiveMQ配置的操作步驟,在此基礎(chǔ)上從不同角度的需求得出相應(yīng)的配置選擇。ActiveMQ是一個(gè)優(yōu)秀的開源軟件,有豐富的配置選擇,如何更好地利用 ActiveMQ成為進(jìn)一步的研究目標(biāo)。

      [1]周城,葛斌,蔣林承.一種基于消息中間件的網(wǎng)頁(yè)實(shí)時(shí)處理技術(shù)[J].電腦知識(shí)與技術(shù),2011(10).

      [2]http://blog.sina.com.cn/s/blot_616e189fO100ns4s.html

      猜你喜歡
      實(shí)例應(yīng)用程序消息
      一張圖看5G消息
      刪除Win10中自帶的應(yīng)用程序
      消息
      消息
      消息
      完形填空Ⅱ
      完形填空Ⅰ
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      三星電子將開設(shè)應(yīng)用程序下載商店
      微軟軟件商店開始接受應(yīng)用程序
      棋牌| 胶南市| 锦屏县| 洪雅县| 连南| 塔城市| 枣强县| 宣化县| 金乡县| 和林格尔县| 临湘市| 峨眉山市| 巧家县| 澜沧| 乐都县| 永宁县| 宁陕县| 锡林郭勒盟| 古田县| 惠来县| 奉新县| 武宣县| 慈利县| 瑞昌市| 县级市| 洪江市| 泰顺县| 东乡县| 邹平县| 鞍山市| 巧家县| 临武县| 浦东新区| 淮安市| 闵行区| 西乌珠穆沁旗| 青海省| 石门县| 张家界市| 法库县| 集贤县|