一、JMS的了解
JMS是java的消息服務,JMS的用戶端之間可以通過JMS服務進行異步的消息傳輸。
1. JMS的消息模型
1)點對點(P2P) 模型
2)釋出/訂閱模型
2 .消息發送接收模型圖
3.兩種模型的差別與特點
點對點模型(Queue):
1)每個消息隻有一個消費者,
如果一條消息被消息者接收,消息就不存在于消息隊列queue中了,那麼其他的消費者接收不到這條消息。
2)發送和接受消息在時間上沒有依賴性
也就是說,生産者在發送消息後,消費者可以在任意的時刻接收,隻要該消息沒有被其他消費者接受或者逾時了。消費者也可以先運作,一但生産者将消息發送到隊列中,消費者即可從隊列中接受消息。
3) 消費者在消息接收之後需要像隊列應答确認消息接收成功
接收消息後消費者必須發送應答成功信号(Acknowledges),表示消息已被接收,否則JMS伺服器會認為該消息沒有被成功接收,那麼這條消息還可以被其他消費者接收,直到這個消息被消費掉。
釋出訂閱模型(Topic)
釋出/訂閱傳遞消息類型與主題(Topic)有關。生産者釋出消息,而消費者訂閱感興趣的消息,生産者将消息和一個特定的主題(Topic)連在一起.
1 ) 每個消息都可以有多個訂閱者
也是就是說每個消息有多個消費者,隻要訂閱了這個主題(Topic),就可以獲得這個消息。
2) 釋出者和訂閱者之間有時間上的依賴性。
針對某個主題(Topic)的訂閱者,它必須建立一個訂閱者之後,才能消費釋出者的消息,而且為了消費消息,訂閱者必須保持運作的狀态(也就是說在必須先啟動消費者那方)。
二、ActiveMQ
ActiveMQ是實作了JMS的開源軟體,ActiveMQ是一個易于使用的消息中間件。
安裝與使用
1.下載下傳
下載下傳ActiveMQ,下載下傳位址:http://pan.baidu.com/s/1nvltEyP,解壓好的檔案目錄如下
- bin存放的是腳本檔案
- conf存放的是基本配置檔案
- data存放的是日志檔案
- docs存放的是說明文檔
- examples存放的是簡單的執行個體
- lib存放的是activemq所需jar包
- webapps用于存放項目的目錄
2.啟動服務
輕按兩下/bin/win64目錄下(我的電腦系統是64位的,是以是這個目錄,如果是32位系統的目錄是/bin/win32)的activemq.bat,啟動activemq服務。
3.監控
http://127.0.0.1:8161/admin/
,啟動服務後,可以通過這個位址檢視activemq活動的狀态。使用者名和密碼都是admin。
可以看到隊列“FirstQueue1”中此時有十條消息未被消費。
AciveMQ的好處
看下圖應用程式A将Message發送到伺服器上,然後應用程式B從伺服器中接收A發來的消息。
1)如果網絡連接配接不可用,ActiveMQ會存儲消息,直到連接配接變得可用時,再将消息發送給應用程式B。
2)當應用程式A發送其消息時,應用程式B甚至可以不處于執行狀态。直到應用程式B開始執行消費為止,消息會保留。防止了應用程式A因為等待應用程式B消費消息而出現阻塞。