JMS(Java消息服務)之ActiveMQ的介紹,安裝與測試

JMS(Java消息服務)之ActiveMQ的介紹,安裝與測試

介紹:

ActiveMQ是Apache出品的,最流行的,能力強勁的開源消息總線(JMS提供者),是一個完全支持JMS1.1和J2EE1.4規範的JMS Provider實現。具有如下的特性:

  • 多語言和協議編寫客戶端。支持的語言有java、C、C++、C#、python、Ruby、Perl、php;應用協議有:OpenWire、Stomp REST、WS Notification、XMPP、AMQP。
  • 完全支持JMS1.1和J2EE 1.4規範 (持久化,XA消息,事務)。
  • 對Spring的支持,ActiveMQ可以很容易內嵌到使用Spring的系統裏面去,而且也支持Spring2.0的特性。
  • 通過了常見J2EE服務器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的測試,其中通過JCA 1.5 resource adaptors的配置,可以讓ActiveMQ可以自動的部署到任何兼容J2EE 1.4 商業服務器上。
  • 支持多種傳送協議:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA。
  • 支持通過JDBC和journal提供高速的消息持久化。
  • 從設計上保證了高性能的集羣,客戶端-服務器,點對點。
  • 支持Ajax。
  • 支持與Axis的整合。
  • 可以很容易的調用內嵌JMS provider,進行測試。

安裝

去官網http://activemq.apache.org/download.html 下載最新版本5.15.8release。
解壓apache-activemq-5.15.8-bin.zip(或者apache-activemq-5.15.8-bin.tar.gz)目錄如下:
+bin (windows下面的bat和unix/linux下面的sh)
+conf (activeMQ配置目錄,包含最基本的activeMQ配置文件)
+data (默認是空的)
+docs (index,replease版本里面沒有文檔,-.-b不知道爲啥不帶)
+example (幾個例子
+lib (activemMQ使用到的lib)
-apache-activemq-4.1-incubator.jar (ActiveMQ的binary)
-LICENSE.txt
-NOTICE.txt
-README.txt
-user-guide.html

你可以使用命令行方式啓動:打開cmd,進入到%ACTIVEMQ_HOME%\bin目錄下,使用命令:

          activemq start 						//打開服務

如果一切順利,你就會看見類似下面的信息:
在這裏插入圖片描述你也可以將%ACTIVEMQ_HOME%\bin寫入環境變量中,避免每次啓動服務需cmd進入指定文件夾下命令操作。
你也可以使用bin\activemq.bat(activemq) 啓動。

ps:若出現以下錯誤閃退無法啓動,則因MQ版本和JRE版本不匹配問題導致,更換JRE或者MQ版本即可。
如果更換版本依然出現閃退,則可以通過編輯activemq.bat,在末端加上pause,重新啓動則可以暫停閃退找出問題 在這裏插入圖片描述>ps:windows系統直接運行activemq.bat閃退,則可嘗試使用上述cmd命令行啓動方式。>在這裏插入圖片描述

ps:
⒈ 這個僅僅是最基礎的ActiveMQ的配置,很多地方都沒有配置因此不要直接使用這個配置用於生產系統。
⒉ 有的時候由於端口被佔用,導致ActiveMQ錯誤,ActiveMQ可能需要以下端口1099(JMX),61616(默認的TransportConnector)。

.在這裏插入圖片描述
此端口可能被windows的某種服務佔用掉,所以需要修改activemq的默認端口;
解決辦法:進入到%ACTIVEMQ_HOME%\conf中的actviemq.xml中修改61616位61618(此端口可爲任意未被佔用端口)即可:
在這裏插入圖片描述另外,如果主機地址請求有問題,可以將上面的0.0.0.0修改爲localhost。

⒊ 如果沒有物理網卡,或者MS的LoopBackAdpater Multicast會報一個錯誤。

測試

由於ActiveMQ是一個獨立的jms provider,所以我們不需要其他任何第三方服務器就可以馬上做我們的測試了.

啓動成功後,訪問http://localhost:8161/admin,即可登錄ActiveMQ管理界面。默認賬號admin 密碼admin,登錄成功顯示如下:在這裏插入圖片描述

ps:用戶名和密碼在%ACTIVEMQ_HOME%\conf中的jetty-realm.properties中配置。安全需求高的可以進行修改。如下:在這裏插入圖片描述

ps:編譯example目錄下面的程序 ProducerTool/ConsumerTool 是JMS參考裏面提到的典型應用,Producer產生消息,Consumer消費消息,而且這個例子還可以加入參數幫助你測試剛纔啓動的本地 ActiveMQ或者是遠程的ActiveMQ。
ProducerTool broker的地址,默認的是tcp://localhost:61616
[true|flase] 是否使用topic,默認是false
[subject] subject的名字,默認是TOOL.DEFAULT
[durabl] 是否持久化消息,默認是false
[messagecount] 發送消息數量,默認是10
[messagesize] 消息長度,默認是255
[clientID] durable爲true的時候,需要配置clientID
[timeToLive] 消息存活時間
[sleepTime] 發送消息中間的休眠時間
[transacte] 是否採用事務
ConsumerTool broker的地址,默認的是tcp://localhost:61616
[true|flase] 是否使用topic,默認是false
[subject] subject的名字,默認是TOOL.DEFAULT
[durabl] 是否持久化消息,默認是false
[maxiumMessages] 接受最大消息數量,0表示不限制
[clientID] durable爲true的時候,需要配置clientID
[transacte] 是否採用事務
[sleepTime] 接受消息中間的休眠時間,默認是0,onMeesage方法不休眠
[receiveTimeOut] 接受超時
我們可以這樣使用:
先啓動activeMQ,再打開兩個命令窗口,都進入%ACTIVEMQ_HOME%\example,一個運行:ant consumer,一個運行:ant producer,如果成功發送/接收了消息就OK了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章