消息隊列-OPEN MQ

Java 消息服務 (JMS) API 是一種消息傳遞標準,它允許基於 Java 平臺企業版 (Java EE) 的應用程序組件創建、發送、接收和讀取消息。它支持鬆散耦合、可靠和異步的分佈式通信。

是一種中間件,rabibt MQ, kafka相似。使用起來直接可以引用pom文件裏,進行消息發送與接收。

打開消息隊列 - 快速入門

此頁面簡要概述了 Open MQ 的主要功能

Open MQ 實現了可靠的消息傳遞機制,允許您的應用程序集成在一起,而無需依賴同步通信,並在消息生產者和消息消費者之間提供緩衝。Open MQ 提供了一個統一的構建塊,可實現異步、鬆散耦合的集成,並提供用於管理、控制和監視的通用框架。

Open Message Queue 是一個功能齊全的面向消息的中間件 (MOM),消息服務器。Open MQ 實現了 Java 消息服務 (JMS) API 並提供企業級功能,例如:

  • 企業系統組件之間鬆散耦合的消息傳遞
  • 消息服務器的可擴展分佈(代理集羣)
  • 集成 SOAP/HTTP 消息傳遞
  • 可擴展的 JCA 1.5 兼容資源適配器
  • 企業管理功能
  • 廣泛的 JMX 支持(

    Java 管理擴展JMX ) 是一種Java技術,它提供用於管理和監視應用程序、系統對象、設備(例如打印機)和麪向服務的網絡的工具。這些資源由稱爲 MBean(對於Managed Bean)的對象表示在 API 中,可以動態加載和實例化。可以使用 Java 動態管理工具包來設計和開發管理和監控應用程序。[1]

    JSR 003 [2]所述的Java社區定義JMX 1.0,1.1和1.2。JMX 2.0 是在 JSR 255 下開發的,但此 JSR 隨後被撤回。[3]用於遠程管理和監控的 JMX 遠程 API 1.0 由 JSR 160 指定。[4]用於 Web 服務的 JMX 遠程 API 的擴展正在 JSR 262 下開發。[5]

    由早期採用J2EE社區,JMX一直一部分J2SE自5.0版本。“JMX”是甲骨文公司的商標

此處提供更完整的功能列表

爲什麼要使用消息隊列?

與應用程序之間的直接集成相比,面向消息的集成具有一些優勢。首先,這允許消息傳遞基礎結構作爲主要系統組件之間的緩衝區運行。此外,消息傳遞可以提供一種機制,通過該機制您可以與不同的系統組件集合進行通信,而不必瞭解這些組件的詳細信息。由於在連接的應用程序之間有一個完整的緩衝區,這些系統中的每一個都可以按自己的節奏運行,而消息傳遞基礎設施可以以生產速度吸收消息,而它們可以以消費者能夠處理這些消息的任何速率被消耗。

消息傳遞與 API 調用有着根本的不同,因爲您的應用程序無法知道通信鏈路另一端的應用程序何時將接收該消息並執行該消息所暗示的任何操作。它本質上是異步的。需要緊密耦合的應用程序可能不是 MOM 中介的最佳選擇。系統之間的所有操作都被抽象爲一組消息,這些消息通過 JMS 服務器進行交換,作爲應用程序端點之間的中介。僅僅因爲應用程序是異步的,並不意味着它不能具有高吞吐量。事實上,已經實現了許多以非常高的消息交換速率執行的應用程序。

MQ 可以確保消息以正確的順序進行操作,如果有任何交付問題,基礎設施可以確定地知道最終的交付處置是什麼(成功或失敗)。

打開MQ安裝

有幾個選項可供您使用。最簡單的方法是下載 GUI 安裝程序包並按照安裝應用程序中的說明進行操作。如果您想下載較小的軟件包,您可以下載軟件包存檔——無需安裝程序。我們稱之爲“基於文件”的安裝。這將簡單地在您選擇的任何地方打開產品包裝。然後,您可以運行安裝腳本來配置 Open MQ 以用於最一般的使用類型。

如果您想從源代碼開始,您需要一份 NetBeans(或一個配備齊全的 IDE)。我們提供了構建和運行簡單測試應用程序的說明,以驗證您構建的內容是否正確構建。有關如何獲取此包的說明,請參閱 [下載頁面](/openmq/Downloads.html)

開放式 MQ 架構和系統組件

這是一個框圖,可讓您瞭解 Open MQ 的主要系統組件

 

 

打開 MQ 消息代理

Message Brokers是 Open MQ 的基本work-horses。這些服務器端應用程序管理正在生成和使用消息的客戶端之間的所有消息交換。消息代理負責管理消息目的地的集合。客戶端可以向消息目的地生成消息或從消息目的地消費消息。消息目的地可以配置爲消息隊列或主題目的地。當您希望以精確的順​​序處理消息以及需要確保交付得到保證時,可以使用隊列。主題目的地在“發佈和訂閱”消息傳遞中很有用。Pub-Sub 消息傳遞對於將消息分發給多個消費者很有用(儘管沒有理由不能只有一個消費者)。而消息“隊列”

代理可以“集羣”以實現服務和數據冗餘。消息代理集羣管理“集羣節點”之間的內部簿記,以確保遵循交付規則。

打開 MQ 管理

Open MQ 提供了一個簡單的內置管理 GUI。此用戶界面提供常見任務,例如啓動和停止消息隊列代理、創建目標和簡單任務。對於更復雜的應用程序,我們提供了豐富的 Java 管理擴展 (JMX) API。通過 JMX API,您幾乎可以監視和管理 Open MQ 系統的任何方面。此外,您可以通過此 API 開發自己的管理控件。如果您的項目包括 Java Enterprise System,那麼 Java Enterprise System Monitoring Framework 可用於 Open MQ。同樣,Java Composite Application Suite —— 和 GlassFish Server 應用服務器也使用 JMX API 來控制和管理 Open MQ 操作。

打開 MQ 消息存儲選項

Open MQ 支持兩種基本類型的消息存儲。您可以使用嵌入式“文件存儲”,也可以使用 JDBC 數據源。如果您不對默認設置進行更改,則使用嵌入式文件存儲。這針對與開放式 MQ 一起使用進行了優化,並且在大多數應用程序中將爲您提供最高的系統性能。每個 Open MQ Broker 管理自己的文件存儲。使用嵌入式文件存儲時有一些用於消息分發的工具,但是,在代理失敗的情況下,這些工具不能提供持續的可用性。

許多站點更喜歡使用基於 SQL 的公共數據存儲層。對於這些站點,Open MQ 通過 JDBC 支持數據庫。JDBC 沒有爲 Messaging 使用提供高水平的優化。此外,所有可用的優化都必須在數據庫中實現,作爲該產品管理實用程序的一部分。通常,在使用嵌入式文件存儲時,您可以期待更高的初始吞吐量。

爲了高可靠性和高可用的使用,必須使用高可用的JDBC數據庫。Open MQ 使用 jdbc 數據庫來存儲數據,它實現了一個低容量的代理到代理通信協議來解決任何不適合數據庫內的運行時操作問題。可以將 Open MQ 配置爲與任何 JDBC 數據庫一起使用 HA,但爲了獲得最大可用性,您需要使用具有故障恢復能力的數據庫進行部署,並提供完整的內部數據一致性和冗餘。示例 HA 數據庫包括: HADB——包含在 Oracle GlassFish Server(又名 Sun Java System Application Server 9.1)中的 JDBC 數據存儲;mySQL 集羣版(帶 ndb 存儲);和甲骨文。

打開 MQ Java 客戶端

Open MQ 爲開發 Java 應用程序提供了豐富的客戶端 API。如果您正在編寫獨立應用程序,您可以通過 Java 客戶端 API 直接與 Open MQ 集成。API 太豐富了,無法在此詳述。安裝產品時,它包含完整的 javadoc。而且,您可以閱讀 MQ文檔集中的詳盡手冊對於所有文檔的索引,您還可以瀏覽到 [下載頁面](/openmq/Downloads.html) 的文檔部分。

打開 MQ C 客戶端

許多項目希望與基於 C 的客戶端交互。對於 C 語言,對於 JMS,沒有標準。這已經被討論爲一種可能的擴展,但到目前爲止,還沒有采取任何堅定的行動來創建 C 標準。因此,每個產品都有一個稍微獨特的 c-api,它們用來模擬Java JMS 標準。同樣,在這裏記錄太豐富了。您應該閱讀 MQ文檔集合中提供的 c-api 程序員指南,或通過 Open MQ [下載頁面](/openmq/Downloads.html) 上的鏈接。

通過 HTTP 打開 MQ JMS

您可以使用 Open MQ 通過 HTTP 直接使用 JMS。這允許您使用跨越傳統防火牆的遠程客戶端。這在Java Client Developers Guide 的第 5 章“使用 SOAP 消息”中有詳細說明

產品手冊

我們有大量的手冊來描述這些概念以及更多內容。從 MQ 4.4 更新 2 開始,所有 MQ 文檔現在都包含在相關的 GlassFish Server 文檔中。GlassFish 3.0.1 文檔可在此處獲得可以在此鏈接中找到所有先前版本的舊文檔

如果您不熟悉 JMS 消息傳遞,您可能需要閱讀概述指南以瞭解產品。您可以與管理員聯繫。概述和快速入門教程,在管理指南的第 1 部分,MQ 管理簡介——它將指導您完成基本的管理功能,然後是一個教程。之後,您可能會發現MQ 技術概述對於規劃和組織您希望如何處理 JMS 項目很有用。

本網站的其他地方也有許多提示和提示。

包含開放消息隊列的產品

Open Message Queue 已集成到多個社區和商業類產品中。它是 Project GlassFish 的 Java EE Java Message Service (JMS) 提供程序,也是 Java Platform, Enterprise Edition 的參考實現 JMS Provider。

如果您對使用受支持的 Open Message Queue 版本感興趣,您應該查看Oracle GlassFish Server 產品頁面Sun Microsystems 可提供試用版下載和服務合同。請記住,商業類產品中的功能可能與 Open MQ 有所不同。

Oracle GlassFish Server -- 包括您可以購買支持合同的 Open Message Queue 的商業版本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章