1. 程式人生 > 其它 >訊息佇列-OPEN MQ

訊息佇列-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 支援

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

為什麼要使用訊息佇列?

與應用程式之間的直接整合相比,面向訊息的整合具有一些優勢。首先,這允許訊息傳遞基礎結構作為主要系統元件之間的緩衝區執行。此外,訊息傳遞可以提供一種機制,通過該機制您可以與不同的系統元件集合進行通訊,而不必瞭解這些元件的詳細資訊。

由於在連線的應用程式之間有一個完整的緩衝區,這些系統中的每一個都可以按自己的節奏執行,而訊息傳遞基礎設施可以以生產速度吸收訊息,而它們可以以消費者能夠處理這些訊息的任何速率被消耗。

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

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

開啟MQ安裝

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

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

開放式 MQ 架構和系統元件

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

開啟 MQ 訊息代理

訊息代理是 Open MQ 的基本工作馬。這些伺服器端應用程式管理正在生成和使用訊息的客戶端之間的所有訊息交換。訊息代理負責管理訊息目的地的集合。客戶端可以向訊息目的地生成訊息或從訊息目的地消費訊息。訊息目的地可以配置為訊息佇列或主題目的地。當您希望以精確的順​​序處理訊息以及需要確保交付得到保證時,可以使用佇列。主題目的地在“釋出和訂閱”訊息傳遞中很有用。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 有所不同。

GlassFish 社群
專案開放企業服務匯流排
Oracle GlassFish Server -- 包括您可以購買支援合同的 Open Message Queue 的商業版本
網豆
OTN 上的 Java 企業版
Java工具
Solaris 操作環境
如有錯誤,懇求讀者指出,傳送到[email protected]