JMS之——ActiveMQ的安裝和啟動
一、ActiveMQ簡介
在上一篇博文《JMS之——JMS簡介》中,我們對JMS進行了一些簡單介紹,那麼,現在我就帶著大家一起來實現ActiveMQ的安裝和啟動。同樣,對ActiveMQ做一個簡短的介紹,ActiveMQ是Apache的一款基於Java開發的開源的訊息中介軟體。說起訊息中介軟體,它在企業開發中,扮演著十分重要的角色,那麼它能用來幹什麼呢?訊息中間價又有那些用途和有點呢?
訊息中介軟體有很多的用途和優點:
1. 將資料從一個應用程式傳送到另一個應用程式,或者從軟體的一個模組傳送到另外一個模組;
2. 負責建立網路通訊的通道,進行資料的可靠傳送。
3. 保證資料不重發,不丟失
4. 能夠實現跨平臺操作,能夠為不同作業系統上的軟體整合技工資料傳送服務
訊息中介軟體的用途和有點還有很多很多,在這裡就不一一列舉了。這裡,我們重點講解Apache的ActiveMQ。
ActiveMQ是由Apache出品的,一款最流行的,能力強勁的開源訊息匯流排。ActiveMQ是一個完全支援JMS1.1和J2EE 1.4規範的 JMS Provider實現,它非常快速,支援多種語言的客戶端和協議,而且可以非常容易的嵌入到企業的應用環境中,並有許多高階功能。
二、下載安裝ActiveMQ
1、下載ActiveMQ
我們到Apache官方網站下載ActiveMQ,連結為:http://activemq.apache.org/ 這裡,我下載的是最新版5.14.4版本,同時,我在CentOS上安裝和啟動ActiveMQ,所以,我下載的是Linux版本的ActiveMQ。下載後的結果如下圖:
2、解壓ActiveMQ
在命令列輸入以下命令對ActiveMQ進行解壓。
tar -zxvf apache-activemq-5.14.4-bin.tar.gz
解壓後的目錄如下:
從它的目錄來說,還是很簡單的:
- bin存放的是指令碼檔案
- conf存放的是基本配置檔案
- data存放的是日誌檔案
- docs存放的是說明文件
- examples存放的是簡單的例項
- lib存放的是activemq所需jar包
- webapps用於存放專案的目錄
3、啟動ActiveMQ
我們進入bin目錄,輸入如下命令啟動ActiveMQ
./activemq start
啟動後,我們如何知道ActiveMQ啟動成功了呢?輸入以下命令
結果如下:ps -ef | grep activemq
證明已經啟動成功。
4、測試
ActiveMQ預設監聽的埠是61616,我們輸入以下命令來驗證ActiveMQ是否監聽了61616埠
netstat -lnp|grep 61616
結果如下:
說明ActiveMQ已經監聽了61616埠。
5、監控
ActiveMQ預設啟動時,啟動了內建的jetty伺服器,提供一個用於監控ActiveMQ的admin應用。
admin:http://192.168.50.131:8161/admin/ (我把ActiveMQ安裝到了CentOS上,ip是192.168.50.131,如果你安裝在本機上則路徑是:http://127.0.0.1:8161/admin/)
使用者名稱和密碼都是admin
至此,ActiveMQ的安裝和啟動全部完成。
三、ActiveMQ特性
- 多種語言和協議編寫客戶端。語言: Java, C, C++, C#, Ruby, Perl, Python, 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,進行測試
四、什麼情況下使用ActiveMQ?
1、多個專案之間整合
(1) 跨平臺
(2) 多語言
(3) 多專案
2、 降低系統間模組的耦合度,解耦
(1) 軟體擴充套件性
3、系統前後端隔離
(1) 前後端隔離,遮蔽高安全區
其實ActiveMQ的應用還有很多,大家可以上網查查,不再一一舉例。