1. 程式人生 > >JBoss-BM WebSphere MQ-ActiveMQ

JBoss-BM WebSphere MQ-ActiveMQ

1、 JBoss被Red Hat收購後,釋出了Jboss Messaging作為預設的JMS提供者來代替JbossMQ,但是目前Jboss Messaging已經處於bug修復模式,由HornetQ完全支援JMS。

2、 IBM WebSphere MQ

IBM WebSphere MQ是IBM業務整合的基礎性產品,也是十幾年以來訊息中介軟體市場的主要領軍產品之一。

WebSphere MQ作為訊息中介軟體的價值是它有能力來解決IT相關的業務問題,並且提供可靠的訊息提供機制。通過WebSphere MQ提供的功能主要有:

Ø        不受時間約束的訊息傳遞——應用程式和Web服務能自如地交換資訊,而無需顧慮應用或服務在通訊時是否有效。例如,您可以在白天輸入訂單併發送至訂單執行系統以備處理,然而訂單執行系統可以在夜間進行訂單的批處理。當一個正在接收訊息的應用程式暫時無效時尤為重要。

Ø        確保訊息傳遞——一旦資訊被建立,WebSphere MQ便具備了正確傳送它的職責。

Ø        交易支援——通常情況下,在應用之間交換一條訊息是遠遠不夠的,經常是一組訊息。例如,一個訂單入口程式通常將訂單中的每個條目都發布一條訊息,而不是把訂單釋出成一條訊息。如果在一組訊息被完全處理之前(例如已處理10條訊息中的前4條),有一條訊息發生錯誤,那麼必須回滾這部分訊息(第1條到第4條訊息),才可以保證在再次啟動時重新發布一組完整訊息。這種機制通常被歸納為支援工作單元。

Ø        資訊傳遞的並行處理——由於許多後臺應用對新使用者也是有效的(例如客戶通過Web進入訂單系統),這些應用不應該讓客戶感到失望。例如在訂單處理過程中讓客戶長時間等待會使客戶非常灰心。在以訊息機制為通訊方式的環境下,這種延誤會被減少,因為訊息不是直接傳送給應用而是被放到佇列中。一旦訊息被提交給WebSphere MQ,應用恢復與使用者的互動。

Ø        安全的訊息傳遞——有能力使用高層的安全性來轉移高價值/高風險交易所固有的風險。WebSphere MQ支援工業標準SSL,併為高階安全特徵要求提供了擴充套件的安全版本。

Ø        一致的程式設計介面——Java Messaging Service是包含在J2EE標準規範內的應有程式介面。推薦在部署新的資訊應有程式時使用JMS介面,然而對於那些準備採用非java應用並且已經使用了大量非java應用的企業來說,可以使用MQ介面(MQI)。程式設計介面是跨多平臺以及使用者友好的介面。

Ø        應用獨立於網路或者系統故障——應用程式使用任意一種程式介面(JMS或者MQI)通過WebSphere MQ來發送和接收訊息。WebSphere MQ提供了處理訊息傳遞的大部分複雜性功能,這意味著應有程式設計可以著重於處理商業問題而不是IT 基礎架構和網路問題。

Ø        系統資源的有效利用——當不同平臺的使用者採用叢集操作時,能夠開發未充分利用的資源或者降低平臺成本。

Ø        可擴充套件性——可以通過群集來完成橫向或者縱向的擴充套件。可以通過增加額外的佇列管理器(比如為每個處理器增加一個)或者在多平臺上構架群集來提高在多處理器平臺上的訊息處理能力。既然可以在所有的通用平臺上來部署WebSphere MQ,因此一個開始基於桌面平臺的實現同樣可以成長為基於主機平臺的實現。

Ø        檔案傳輸——通過WebSphere MQ資訊,檔案傳輸應有允許您以WebSphere MQ 訊息的格式傳送和接收任何格式和任何型別的檔案。這些檔案包括:影象、word處理的文件、電子資料表、報告、信函、備忘錄、圖表。

IBM WebSphere MQ產品支援應用程式通過不同元件如處理器、子系統、作業系統以及通訊協議的網路彼此進行通訊。例如,IBM WebSphere MQ 支援 35 種以上的不同作業系統。

IBM WebSphere MQ支援兩種不同的應用程式程式設計介面:Java 訊息服務(JMS)和訊息佇列介面(MQI)。在 IBM WebSphere MQ 伺服器上,JMS 繫結方式被對映到 MQI。應用程式直接與其本地佇列管理器通過使用 MQI 進行對話,MQI 是一組要求佇列管理器提供服務的呼叫。MQI 的引人之處是它只提供 13 次呼叫。這意味著對於應用程式程式設計員它是一種非常易於使用的介面,因為大部分艱苦工作都將透明完成的。

3、 ActiveMQ

ActiveMQ提供的主要功能特性包括:

1. 多種語言和協議編寫客戶端。語言: Java, C, C++, C#, Ruby, Perl, Python, PHP。應用協議: OpenWire,Stomp REST,WSNotification,XMPP,AMQP

2. 完全支援JMS1.1和J2EE 1.4規範 (持久化,XA訊息,事務)

3. 對Spring的支援,ActiveMQ可以很容易內嵌到使用Spring的系統裡面去,而且也支援Spring2.0的特性

4. 通過了常見J2EE伺服器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的測試,其中通過JCA 1.5resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何相容J2EE 1.4 商業伺服器上

5. 支援多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA

6. 支援通過JDBC和journal提供高速的訊息持久化

7. 從設計上保證了高效能的叢集,客戶端-伺服器,點對點

8. 支援Ajax

9. 支援與Axis的整合

10. 可以很容易得呼叫內嵌JMS provider,進行測試

ActiveMQ官方網站中給出了ActiveMQ對比JbossMQ時所具有的優勢:

Ø        ActiveMQ 很好地執行在任何jvm,而不是在Jboss應用伺服器中

Ø        ActiveMQ 實現了非常多的跨語言客戶端(Cross LanguageClients)

Ø        ActiveMQ 支援多種不同的協(Protocols),比如 Ajax, REST, Stomp, OpenWire,XMPP

Ø        ActiveMQ 支援大量的特性,比如 Message Groups, ExclusiveConsumer, Composite Destinations, Advisory Message

Ø        ActiveMQ 通過可配置的(configurable)自動重連提供高可靠的連線

Ø        ActiveMQ 有非常好的Spring支援(Spring Support)

Ø        ActiveMQ 支援跨網路的分散式的destinations

Ø        ActiveMQ 非常快,一般是JbossMQ的10倍。