天天看點

JMS與ActiveMQ的基本概念

一、JMS的了解

JMS是java的消息服務,JMS的用戶端之間可以通過JMS服務進行異步的消息傳輸。

1. JMS的消息模型

1)點對點(P2P) 模型

2)釋出/訂閱模型

2 .消息發送接收模型圖

JMS與ActiveMQ的基本概念

3.兩種模型的差別與特點

點對點模型(Queue):

1)每個消息隻有一個消費者,

如果一條消息被消息者接收,消息就不存在于消息隊列queue中了,那麼其他的消費者接收不到這條消息。

2)發送和接受消息在時間上沒有依賴性

也就是說,生産者在發送消息後,消費者可以在任意的時刻接收,隻要該消息沒有被其他消費者接受或者逾時了。消費者也可以先運作,一但生産者将消息發送到隊列中,消費者即可從隊列中接受消息。

3) 消費者在消息接收之後需要像隊列應答确認消息接收成功

接收消息後消費者必須發送應答成功信号(Acknowledges),表示消息已被接收,否則JMS伺服器會認為該消息沒有被成功接收,那麼這條消息還可以被其他消費者接收,直到這個消息被消費掉。

JMS與ActiveMQ的基本概念

釋出訂閱模型(Topic)

釋出/訂閱傳遞消息類型與主題(Topic)有關。生産者釋出消息,而消費者訂閱感興趣的消息,生産者将消息和一個特定的主題(Topic)連在一起.

1 ) 每個消息都可以有多個訂閱者

也是就是說每個消息有多個消費者,隻要訂閱了這個主題(Topic),就可以獲得這個消息。

2) 釋出者和訂閱者之間有時間上的依賴性。

針對某個主題(Topic)的訂閱者,它必須建立一個訂閱者之後,才能消費釋出者的消息,而且為了消費消息,訂閱者必須保持運作的狀态(也就是說在必須先啟動消費者那方)。

JMS與ActiveMQ的基本概念

二、ActiveMQ

ActiveMQ是實作了JMS的開源軟體,ActiveMQ是一個易于使用的消息中間件。

安裝與使用

1.下載下傳

下載下傳ActiveMQ,下載下傳位址:http://pan.baidu.com/s/1nvltEyP,解壓好的檔案目錄如下

JMS與ActiveMQ的基本概念

- bin存放的是腳本檔案

- conf存放的是基本配置檔案

- data存放的是日志檔案

- docs存放的是說明文檔

- examples存放的是簡單的執行個體

- lib存放的是activemq所需jar包

- webapps用于存放項目的目錄

2.啟動服務

輕按兩下/bin/win64目錄下(我的電腦系統是64位的,是以是這個目錄,如果是32位系統的目錄是/bin/win32)的activemq.bat,啟動activemq服務。

JMS與ActiveMQ的基本概念

3.監控

http://127.0.0.1:8161/admin/

,啟動服務後,可以通過這個位址檢視activemq活動的狀态。使用者名和密碼都是admin。

JMS與ActiveMQ的基本概念

可以看到隊列“FirstQueue1”中此時有十條消息未被消費。

AciveMQ的好處

看下圖應用程式A将Message發送到伺服器上,然後應用程式B從伺服器中接收A發來的消息。

JMS與ActiveMQ的基本概念

1)如果網絡連接配接不可用,ActiveMQ會存儲消息,直到連接配接變得可用時,再将消息發送給應用程式B。

2)當應用程式A發送其消息時,應用程式B甚至可以不處于執行狀态。直到應用程式B開始執行消費為止,消息會保留。防止了應用程式A因為等待應用程式B消費消息而出現阻塞。