天天看點

深入淺出JMS–ActiveMQ簡單介紹以及安裝(二)

文章出自:http://www.aijava.cn/13512.html

現實的企業中,對于消息通信的應用一直都非常的火熱,而且在J2EE的企業應用中扮演着特殊的角色,是以對于它研究是非常有必要的。

這篇博文介紹一款開源的JMS具體實作——ActiveMQ。ActiveMQ是一個易于使用的消息中間件。

消息中間件

我們簡單的介紹一下消息中間件,對它有一個基本認識就好,消息中間件(MOM:Message Orient middleware)。

消息中間件有很多的用途和優點: 

1. 将資料從一個應用程式傳送到另一個應用程式,或者從軟體的一個子產品傳送到另外一個子產品; 

2. 負責建立網絡通信的通道,進行資料的可靠傳送。 

3. 保證資料不重發,不丢失 

4. 能夠實作跨平台操作,能夠為不同作業系統上的軟體內建技工資料傳送服務

MQ

首先簡單的介紹一下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息隊列,幹嘛用的呢,說白了就是一個消息的接受和轉發的容器,可用于消息推送。

下面進入我們今天的主題,為大家介紹ActiveMQ:

ActiveMQ

簡要概述ActiveMQ

Apache ActiveMQ ™ is the most popular and powerful open source messaging and Integration Patterns server.
Apache ActiveMQ is fast, supports many Cross Language Clients and Protocols, comes with easy to use Enterprise Integration Patterns and many advanced features while fully supporting JMS 1.1 and J2EE 1.4.      

ActiveMQ是由Apache出品的,一款最流行的,能力強勁的開源消息總線。ActiveMQ是一個完全支援JMS1.1和J2EE 1.4規範的 JMS Provider實作,它非常快速,支援多種語言的用戶端和協定,而且可以非常容易的嵌入到企業的應用環境中,并有許多進階功能。

下面我們下載下傳一個版本,玩一玩。

下載下傳ActiveMQ

官方網站:http://activemq.apache.org/ 

現在ActiveMQ最新的版本是5.11.1,下載下傳挺簡單的,就不再截圖了。

運作ActiveMQ服務

  1. 下載下傳,解壓縮 

    大家現在好之後,将apache-activemq-5.11.1-bin.zip解壓縮,我們可以看到它的整體目錄結構: 

    深入淺出JMS–ActiveMQ簡單介紹以及安裝(二)
    從它的目錄來說,還是很簡單的: 
    • bin存放的是腳本檔案
    • conf存放的是基本配置檔案
    • data存放的是日志檔案
    • docs存放的是說明文檔
    • examples存放的是簡單的執行個體
    • lib存放的是activemq所需jar包
    • webapps用于存放項目的目錄
  2. 啟動ActiveMQ 

    我們了解activemq的基本目錄,下面我們運作一下activemq服務,輕按兩下bin目錄下的activemq.bat腳本檔案或運作自己電腦版本下的activemq.bat,就可以看下圖的效果。 

從上圖我們可以看到activemq的存放位址,以及浏覽器要通路的位址. 

3. 測試

ActiveMQ預設使用的TCP連接配接端口是61616, 通過檢視該端口的資訊可以測試ActiveMQ是否成功啟動 netstat -an|find “61616”

C:\Documents and Settings\Administrator>netstat -an|find "61616" 
TCP     0.0.0.0:61616     0.0.0.0:0       LISTENING      

4. 監控 

ActiveMQ預設啟動時,啟動了内置的jetty伺服器,提供一個用于監控ActiveMQ的admin應用。 

admin:http://127.0.0.1:8161/admin/

使用者名和密碼都是admin

深入淺出JMS–ActiveMQ簡單介紹以及安裝(二)

5. 至此,服務端啟動完畢

停止伺服器,隻需要按着Ctrl+Shift+C,之後輸入y即可。

我們簡單說說ActiveMQ特性,網上很多,隻是為了保證博文的完整。

ActiveMQ特性清單

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

什麼情況下使用ActiveMQ?

  1. 多個項目之間內建 

    (1) 跨平台 

    (2) 多語言 

    (3) 多項目

  2. 降低系統間子產品的耦合度,解耦 

    (1) 軟體擴充性

  3. 系統前後端隔離 

    (1) 前後端隔離,屏蔽高安全區

其實ActiveMQ的應用還有很多,大家可以上網查查,不再一一舉例。

總結

ActiveMQ并不難,具有很多的優勢。

下篇博文,我們做一個簡單執行個體,真正的體會一把ActiveMQ的魅力。