activemq是由apache出品的,一款最流行的,能力強勁的開源訊息匯流排。activemq是乙個完全支援jms1.1和j2ee 1.4規範的 jms provider實現,它非常快速,支援多種語言的客戶端和協議,而且可以非常容易的嵌入到企業的應用環境中,並有許多高階功能。
mq
首先簡單的介紹一下mq,mq英文名messagequeue,中文名也就是大家用的訊息佇列,幹嘛用的呢,說白了就是乙個訊息的接受和**的容器,可用於訊息推送。
下面介紹一下activemq的訊息佇列模型
1、 point-to-point(p2p)
2、 publish/subscribe(pub/sub)
p2p
①訊息佇列(queue)
②傳送者(sender)
③接收者(receiver)
④每個訊息都被傳送到乙個特定的佇列,接收者從佇列中獲取訊息。
佇列保留著訊息,直到他們被消費或超時。
①每個訊息只有乙個消費者(consumer)(即一旦被消費,訊息就不再在訊息佇列中)
②傳送者和接收者之間在時間上沒有依賴性,也就是說當傳送者傳送了訊息之後,
不管接收者有沒有正在執行,它不會影響到訊息被傳送到佇列
③接收者在成功接收訊息之後需向佇列應答成功
如果你希望傳送的每個訊息都應該被成功處理的話,那麼你需要p2p模式。
pub/sub
①主題(topic)
②發布者(publisher)
③訂閱者(subscriber)
客戶端將訊息傳送到主題。多個發布者將訊息傳送到topic,系統將這些訊息傳遞給多個訂閱者。
①每個訊息可以有多個消費者。
②發布者和訂閱者之間有時間上的依賴性。針對某個主題(topic)的訂閱者。
它必須建立乙個訂閱者之後,才能消費發布者的訊息,而且為了消費訊息,訂閱者必須保持執行的狀態。
③為了緩和這樣嚴格的時間相關性,jms允許訂閱者建立乙個可持久化的訂閱。
這樣,即使訂閱者沒有被啟用(執行),它也能接收到發布者的訊息。
如果你希望傳送的訊息可以不被做任何處理、或者被乙個訊息者處理、
或者可以被多個消費者處理的話,那麼可以採用pub/sub模型
訊息中介軟體有很多的用途和優點:
1. 將資料從乙個應用程式傳送到另乙個應用程式,或者從軟體的乙個模組傳送到另外乙個模組。
2. 負責建立網路通訊的通道,進行資料的可靠傳送。
3. 保證資料不重發,不丟失。
4. 能夠實現跨平台操作,能夠為不同作業系統上的軟體整合技工資料傳送服務。
官方**:
.org/
本文中使用的是apache-activemq-5.13
.2 windows版。
從它的目錄來說,還是很簡單的:
bin存放的是指令碼檔案
conf存放的是基本配置檔案
data存放的是日誌檔案
docs存放的是說明文件
examples存放的是簡單的例項
lib存放的是activemq所需jar包
啟動activemq
我們了解activemq的基本目錄,下面我們執行一下activemq服務。
雙擊bin目錄下的activemq.bat指令碼檔案或執行自己電腦版本下的activemq.bat。
測試
activemq預設使用的tcp連線埠是61616, 通過檢視該埠的資訊可以測試activemq是否成功啟動 netstat -an|find 「61616」
c:\users>netstat -an|find "61616"
tcp 0.0
.0.0:61616
0.0.0
.0:0 listening
tcp [::]:61616 [::]:0 listening
監控
activemq預設啟動時,啟動了內建的jetty伺服器,提供乙個用於監控activemq的admin應用。
admin:
使用者名稱和密碼都是admin
至此,服務端啟動完畢
停止伺服器,只需要按著ctrl+shift+c,之後輸入y即可。
文章參考:
activemq簡單的helloworld例項:
spring和activemq整合的完整例項
activemq訊息中介軟體
生產者 factory new connectionfactory tcp localhost 61616 通過工廠建立連線 using iconnection connection factory.createconnection 消費者 建立連線工廠 iconnectionfactory fac...
訊息中介軟體ActiveMQ
此處用的是version 5.14.0 windows上安裝非常簡單直雙擊接執行apache activemq 5.14.0 bin win64 activemq.bat檔案 img 出現如圖所示說明執行啟動成功 linux上安裝此處略 然後瀏覽器輸入http localhost 8161 admi...
訊息中介軟體之activeMQ
使用activemq主要有以下幾點,在這裡做一下記錄。1 docker search activemq 2 docker pull webcenter activemq 3 docker images 4 docker run d name activemq p 61617 61616 p 8162...