1、簡介
JMS全稱是Java Message Service.其是JavaEE技術規範中的一個重要組成部分,是一種企業消息處理的規範.它的作用就像一個智能交換機,它負責路由分佈式應用中各個組件所發出的消息. JMS提供了一組通用的Java API,開發者可以通過API來 創建,發送,接收,讀取 消息.JMS是一種和具體實現廠商無關的API.它的作用類似於JDBC.不管底層採用何種消息服務器的實現,應用程序總是面向通用的JMS API編程.常見的有
apache的ActiveMQ、Jboss的HornetQ。
2、應用場所與優
JMS主要用於分佈式應用的各組件之間的通信.它不僅使應用組件之間的通信變得更加鬆耦合,而且還有以下優勢:
1.消息採用異步處理機制,避免客戶機等待.
2.JMS可以持久的保存消息,因而提高系統的可靠性.
3.JMS允許一條消息同時發給多個接受者,更具效率.
3、JMS的架構
1、JMS服務器,路由消息的服務系統,廣義上說就是服務器,比如JBOSS.
2、JMS生產者,負責創建併發送消息的程序組件.
3、 JMS消費者.負責讀取並處理消息的程序組件.
4、JMS的消息機制模型
- 點對點PTP模型:這種消息處理模型爲應用中的各個邏輯處理單元提供 可靠的通信支持.在PTP通信中,JMS把每一個消息傳遞給一個消息消費者.JMS系統保證消息傳遞給消費者,消息不會同時被多個消費者接受.如果消息消 費者不在連接範圍內,JMS會自動保證消息不會丟失.直到消息消費者進入連接,消息將自動送達.因此JMS需要將消息保存到永久介質上如數據庫.
- 發佈/訂閱 Pub-Sub模型:在這種模型中,每個消息被髮送到一個消息主題,該主題可以擁有多個訂閱者.JMS系統負責將消息的副本傳給該主題的每個訂閱者.
- 連接工廠:它由服務器管理員創建,並綁定到JNDI樹上,JMS客戶端使用JNDI查找,定位連接工廠,然後利用連接工廠創建JMS連接.
- JMS連接:連接表示客戶機和服務器之間的活動連接.JMS通過連接工廠創建連接.JMS是一個相當重要的對象.通常,每個客戶機使用單獨的連接,而每個連接則可以連接多個JMS目的.
- JMS會話:會話表示客戶機與JMS服務器之間的通信狀態.JMS會話建立在連接之上,表示JMS客戶機與服務器之間的通信線程.會話定義了消息的順序.JMS使用會話進行事務性的消息處理.
- JMS消息目的:即消息生產者發送消息的目的地,也就是消息消費者獲取消息的消息源.
- JMS消息生產者:消息生產者負責創建消息並將消息發送到消息目的.
- JMS消息消費者:消息消費者負責接收消息並讀取消息內容.
6、JMS版本
只需關注JMS1.1即可,老版本是1.0.2,PTP模型和Pub-Sub模型在1.0.2裏有兩套不同的API,而1.1統一了這些API.只需關注JMS1.1即可.
接着是一份JMS提供的API接口的圖標:
JMS1.1統一域模型的API |
|
連接工廠 | ConnectionFactory |
JMS連接 | Connection |
消息會話 | Session |
消息目的 | Destination |
消息生產者 | MessageProducer |
消息消費者 | MessageConsumer |