(1)ActiveMQ的簡介
MQ: (message queue) ,消息隊列,也就是用來處理消息的,(處理JMS的)。主要用於大型企業內部或與企業之間的傳遞數據信息。
ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個完全支持JMS1.1和J2EE 1.4規范的 JMS Provider實現,盡管JMS規范出台已經是很久的事情,但是JMS在當今的J2EE應用中間仍然扮演着特殊的地位。
JMS 即Java消息服務(Java Message Service)應用程序接口是一個Java平台中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分布式系統中發送消息,進行異步通信。Java消息服務是一個與具體平台無關的API,絕大多數MOM(manager of managers)提供商都對JMS提供支持。
消息的主要模型有兩種:PTP和PUB/SUB,即點對點(一對一)和發布訂閱模式(一對多)
P2P的特點:
三個重點:隊列(queue) 生產者(sender) 消費者(receiver)
每個消息都被發送到一個特定的隊列,接收者從隊列中獲取消息。隊列保留着消息,直到他們被消費或超時。
每個消息只有一個消費者(Consumer)(即一旦被消費,消息就不再在消息隊列中)
發送者和接收者之間在時間上沒有依賴性,當發送者發送了消息之后,不管接收者有沒有正在運行,它不會影響到消息被發送到隊列
接收者在成功接收消息之后需向隊列應答成功
如果你希望發送的每個消息都應該被成功處理的話,那么你需要P2P模式。
PUB/SUB的特點:
三個重點:主題(topic) 發布者(Publisher) 訂閱者(Subscriber)
客戶端將消息發送到主題。多個發布者將消息發送到Topic,系統將這些消息傳遞給多個訂閱者。
每個消息可以有多個消費者
發布者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須創建一個訂閱者之后,才能消費發布者的消息,而且為了消費消息,訂閱者必須保持運行的狀態。
為了緩和這樣嚴格的時間相關性,JMS允許訂閱者創建一個可持久化的訂閱。這樣,即使訂閱者沒有被激活(運行),它也能接收到發布者的消息。
如果你希望發送的消息可以不被做任何處理、或者被一個消息者處理、或者可以被多個消費者處理的話,那么可以采用Pub/Sub模型。
(2)ActiveMQ的下載與安裝
進入activemq官網,選擇合適的版本下載(分別對應linux、windows):http://activemq.apache.org/download-archives.html
這里我選擇下載的是windows 5.20版本:http://activemq.apache.org/activemq-520-release.html (點擊 apache-activemq-5.2.0-bin.zip)
下載之后,解壓apache-activema-5.2.0-bin.zip包,進入壓縮包得到目如下目錄:
進入上圖標記的 bin 目錄,點擊activemq.bat,啟動 ActiveMQ
說明: windows x64 直接點擊此目錄的activemq.bat啟動即可(我的是winx64)
windows x32進入win32,然后再點擊activemq.bat啟動
啟動成功后,會出現如圖所示結果 Connector vm://localhost Started
使用瀏覽器訪問,訪問結果如下圖所示,在地址欄輸入: http://localhost:8161/admin/
(3)使用ActiveMQ的配置(啟動jms)
修改activemq安裝目錄下的conf目錄下的 activemq.xml
在 <broker>標簽中添加 useJmx="true" 屬性
將<managementContext>標簽下的 createConnector 值改為true。 <managementContext createConnector="true"/>