ActiveMQ第一彈:安裝與執行

黃博文發表於2014-02-20

ActiveMQ使用java寫的,所以天然跨平臺,windows,各種類Unix系統都可執行,只需要下載對應的分發包即可。當前AciveMQ的最新版本是5.9.0。我目前在自己機子上安裝的版本是5.8.0。

安裝ActivceMQ需要先設定好系統環境。

  1. 空間剩餘磁碟大於60M。(這個肯定沒問題)

  2. 需要預裝JDK,版本為1.6.x及其以上。(ActiveMQ就是用java寫的,肯定要裝java環境的嘛)

接下來就可以安裝ActiveMQ了。

一種是直接下載分發包,地址是http://activemq.apache.org/。找到想要安裝的版本後解壓縮即可。

另一種是通過原始碼安裝,地址是http://activemq.apache.org/download.html。該原始碼是使用maven作為構建工具的,所以需要先安裝maven,如何安裝可參見maven官網(MAC使用者如果安裝了homebrew的話,直接執行brew install maven即可)。 然後使用mvn clean install -Dmaven.test.skip=true來構建原始碼。如果構建成功的話在target目錄下可以看到生成的activemq-x.x-SNAPSHOT.zip檔案,解壓縮以後就可以使用了。

當然MAC使用者的話安裝就簡單了,直接使用brew install activemq就行(不知道homebrew為何物的參見我寫的文章: Homebrew- MAC上的包管理利器)。ActiveMQ會被預設安裝到/usr/local/Cellar/activemq。

1
2
3
4
5
6
$:/usr/local/Cellar/activemq$ ls
5.7.0 5.8.0
$:/usr/local/Cellar/activemq$ cd 5.8.0
$:/usr/local/Cellar/activemq/5.8.0$ ls
INSTALL_RECEIPT.json NOTICE               bin
LICENSE              README.txt           libexec

HomeBrew會自動將activemq加入到系統路徑中。

下表列出了與ActiveMQ有關的一些重要的環境變數。

  • ACTIVEMQ_HOME: /usr/local/Cellar/activemq/5.8.0/libexec

  • ACTIVEMQ_BASE: /usr/local/Cellar/activemq/5.8.0/libexec

  • ACTIVEMQ_CONF: /usr/local/Cellar/activemq/5.8.0/libexec/conf

  • ACTIVEMQ_DATA: /usr/local/Cellar/activemq/5.8.0/libexec/data

注意一下所有命令有時基於ActiveMQ 5.8.0版本,不同版本命令稍有不同。

先執行activemq setup ~/.activemqrc來指定activemq的環境配置檔案。在這個檔案中可以自定義activemq使用的JDK路徑,jvm引數等資訊。

1
2
3
4
5
$:/usr/local/Cellar/activemq/5.8.0$ activemq setup ~/.activemqrc
INFO: Loading '/Users/twer/.activemqrc'
INFO: Creating configuration file: /Users/twer/.activemqrc
INFO: It's recommend to limit access to '/Users/twer/.activemqrc' to the priviledged user
INFO: (recommended: chown 'twer':nogroup '/Users/twer/.activemqrc'; chmod 600 '/Users/twer/.activemqrc’)

執行activemq可以顯示activemq相應的配置資訊及可用的命令。(注意低版本中此命令是啟動ActiveMQ)

執行activemq start可以在一個獨立程式中啟動activemq。

1
2
3
4
5
$:/usr/local/Cellar/activemq/5.8.0$ activemq start
INFO: Loading '/Users/twer/.activemqrc'
INFO: Using java '/System/Library/Frameworks/JavaVM.framework/Home/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/local/Cellar/activemq/5.8.0/libexec/data/activemq-bowen-huang.local.pid' (pid '50873')

可以看到程式id是50873.

終止ActiveMQ的執行有兩種方式。一種是使用activemq stop

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$:/usr/local/Cellar/activemq/5.8.0$ activemq stop
INFO: Loading '/Users/twer/.activemqrc'
INFO: Using java '/System/Library/Frameworks/JavaVM.framework/Home/bin/java'
INFO: Waiting at least 30 seconds for regular process termination of pid '50873' :
Java Runtime: Apple Inc. 1.6.0_65 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
  Heap sizes: current=1035520k  free=1033420k  max=1035520k
    JVM args: -Xms1G -Xmx1G -Djava.util.logging.config.file=logging.properties -Dactivemq.classpath=/usr/local/Cellar/activemq/5.8.0/libexec/conf; -Dactivemq.home=/usr/local/Cellar/activemq/5.8.0/libexec -Dactivemq.base=/usr/local/Cellar/activemq/5.8.0/libexec -Dactivemq.conf=/usr/local/Cellar/activemq/5.8.0/libexec/conf -Dactivemq.data=/usr/local/Cellar/activemq/5.8.0/libexec/data
Extensions classpath:
  [/usr/local/Cellar/activemq/5.8.0/libexec/lib,/usr/local/Cellar/activemq/5.8.0/libexec/lib/camel,/usr/local/Cellar/activemq/5.8.0/libexec/lib/optional,/usr/local/Cellar/activemq/5.8.0/libexec/lib/web,/usr/local/Cellar/activemq/5.8.0/libexec/lib/extra]
ACTIVEMQ_HOME: /usr/local/Cellar/activemq/5.8.0/libexec
ACTIVEMQ_BASE: /usr/local/Cellar/activemq/5.8.0/libexec
ACTIVEMQ_CONF: /usr/local/Cellar/activemq/5.8.0/libexec/conf
ACTIVEMQ_DATA: /usr/local/Cellar/activemq/5.8.0/libexec/data
Connecting to pid: 50873
.Stopping broker: localhost
… FINISHED

另一種則是暴力的殺死程式,即kill 50873

執行activemq console則會在當前console中啟動activemq。這種好處是不用多開一個程式,而且可以直接從console中看到log。關閉activemq也很簡單,直接按ctrl+C終止終端執行。

ActiveMQ的預設埠是61616,可以檢測這埠來判斷ActiveMQ是否啟動成功。

1
2
$:/usr/local/Cellar/activemq/5.8.0$ netstat -an|grep 61616
tcp46      0      0  *.61616                *.*                    LISTEN

也可以訪問web終端http://localhost:8161/admin來檢視和管理ActiveMQ。(預設使用者名稱密碼是admin/admin,你也可以修改配置,其在ActiveMQ安裝目錄下的libexec/conf/jetty-real.properties檔案中)。

ActiveMQ支援xml檔案格式對其進行配置。其實我們執行activemq start時,ActiveMQ就是預設使用了其安裝目錄下的libexec/conf/activemq.xml檔案。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$:/usr/local/Cellar/activemq/5.8.0/libexec/conf$ ls
activemq-command.xml                 broker.ks
activemq-demo.xml                    broker.ts
activemq-dynamic-network-broker1.xml camel.xml
activemq-dynamic-network-broker2.xml client.ks
activemq-jdbc.xml                    client.ts
activemq-scalability.xml             credentials-enc.properties
activemq-security.xml                credentials.properties
activemq-specjms.xml                 jetty-demo.xml
activemq-static-network-broker1.xml  jetty-realm.properties
activemq-static-network-broker2.xml  jetty.xml
activemq-stomp.xml                   jmx.access
activemq-throughput.xml              jmx.password
activemq.xml                         log4j.properties
broker-localhost.cert                logging.properties

我們當然可以使用自定義的配置檔案,比如我們改用activemq-demo.xml。

1
2
3
4
5
$:/usr/local/Cellar/activemq/5.8.0/libexec$ activemq start xbean:./conf/activemq-demo.xml
INFO: Loading '/Users/twer/.activemqrc'
INFO: Using java '/System/Library/Frameworks/JavaVM.framework/Home/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/local/Cellar/activemq/5.8.0/libexec/data/activemq-bowen-huang.local.pid' (pid '51375’)

ActiveMQ在5.8.0版本及之後在安裝包中包含了一些demo來演示對ActiveMQ的使用。使用方式很簡單,首先採用activemq-demo.xml配置檔案來啟動ActiveMQ,然後訪問http://localhost:8161/demo/盡情探索把。

這些demo的原始碼都在ActiveMQ安裝目錄下的libexec目錄中,裡面有個user-guide.html,可以用瀏覽器直接開啟,它詳細描述了該如何使用這些demo。

相關文章