消息隊列(二)

1. JAVA JMS

JMS即Java消息服務(Java Message Service)應用程序接口是一個Java平臺中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通信。Java消息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支持。JMS是一種與廠商無關的 API,用來訪問消息收發系統消息。它類似於JDBC(Java Database Connectivity):這裏,JDBC 是可以用來訪問許多不同關係數據庫的 API,而 JMS 則提供同樣與廠商無關的訪問方法,以訪問消息收發服務。許多廠商都支持 JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,這只是幾個例子。 JMS 使您能夠通過消息收發服務(有時稱爲消息中介程序或路由器)從一個 JMS 客戶機向另一個 JMS客戶機發送消息。消息是 JMS 中的一種類型對象,由兩部分組成:報頭和消息主體。報頭由路由信息以及有關該消息的元數據組成。消息主體則攜帶着應用程序的數據或有效負載。根據有效負載的類型來劃分,可以將消息分爲幾種類型,它們分別攜帶:簡單文本(TextMessage)、可序列化的對象 (ObjectMessage)、屬性集合 (MapMessage)、字節流 (BytesMessage)、原始值流 (StreamMessage),還有無有效負載的消息 (Message)。

2JMS規範

JMS(Java Messaging Service)是Java平臺上有關面向消息中間件(MOM)的技術規範,它便於消息系統中的Java應用程序進行消息交換,並且通過提供標準的產生、發送、接收消息的接口簡化企業應用的開發,翻譯爲Java消息服務。

3.JMS體系架構

JMS由以下元素組成。

JMS提供者:連接面向消息中間件的,JMS接口的一個實現。提供者可以是Java平臺的JMS實現,也可以是非Java平臺的面向消息中間件的適配器。

JMS客戶:生產或消費基於消息的Java的應用程序或對象。

     JMS生產者:創建併發送消息的JMS客戶。

     JMS消費者:接收消息的JMS客戶。

JMS消息:包括可以在JMS客戶之間傳遞的數據的對象

JMS隊列:一個容納那些被髮送的等待閱讀的消息的區域。一旦一個消息被閱讀,該消息將被從隊列中移走。

JMS主題:一種支持發送消息給多個訂閱者的機制。

4. Java消息服務應用程序結構支持兩種模型

    點對點或隊列模型

   在點對點或隊列模型下,一個生產者向一個特定的隊列發佈消息,一個消費者從該隊列中讀取消息。這裏,生產者知道消費者的隊列,並直接將消息發送到消費者的隊列。

這種模式被概括爲:

只有一個消費者將獲得消息

生產者不需要在接收者消費該消息期間處於運行狀態,接收者也同樣不需要在消息發送時處於運行狀態。

每一個成功處理的消息都由接收者簽收

發佈者/訂閱者模型

發佈者/訂閱者模型支持向一個特定的消息主題發佈消息。0或多個訂閱者可能對接收來自特定消息主題的消息感興趣。在這種模型下,發佈者和訂閱者彼此不知道對方。這種模式好比是匿名公告板。

這種模式被概括爲:

多個消費者可以獲得消息

在發佈者和訂閱者之間存在時間依賴性。發佈者需要建立一個訂閱(subscription),以便客戶能夠訂閱。訂閱者必須保持持續的活動狀態以接收消息,除非訂閱者建立了持久的訂閱。在那種情況下,在訂閱者未連接時發佈的消息將在訂閱者重新連接時重新發布。

常用的JMS實現

要使用Java消息服務,你必須要有一個JMS提供者,管理會話和隊列。既有開源的提供者也有專有的提供者。

  • 開源的提供者包括:

Apache ActiveMQ

JBoss 社區所研發的 HornetQ

Joram

Coridan的MantaRay

The OpenJMS Group的OpenJMS

  • 專有的提供者包括:

BEA的BEA WebLogic Server JMS

TIBCO Software的EMS

GigaSpaces Technologies的GigaSpaces

Softwired 2006的iBus

IONA Technologies的IONA JMS

SeeBeyond的IQManager(2005年8月被Sun Microsystems併購)

webMethods的JMS+ -

my-channels的Nirvana

Sonic Software的SonicMQ

SwiftMQ的SwiftMQ

IBM的WebSphere MQ

備註:去官方網站下載:http://activemq.apache.org/,解壓縮apache-activemq-5.5.1-bin.zip,修改配置文件activeMQ.xml,將0.0.0.0修改爲localhost或者127.0.0.1,然後雙擊apache-activemq-5.5.1\bin\win64\activemq.bat運行ActiveMQ程序,啓動ActiveMQ以後,登陸:http://localhost:8161/admin/,默認登陸爲admin/admin。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章