ActiveMQ 的安裝與使用(單節點)html
一、 安裝 JDK 並配置環境變量java
JAVA_HOME=/usr/local/java/jdk1.7.0_72web
二、 下載 Linux 版的 ActiveMQ(當前最新版 apache-activemq-5.11.1-bin.tar.gz)
apache
$ wget http://apache.fayea.com/activemq/5.11.1/apache-activemq-5.11.1-bin.tar.gz
安全
三、 解壓安裝 $ tar -zxvf apache-activemq-5.11.1-bin.tar.gzeclipse
$ mv apache-activemq-5.11.1 activemq-01
tcp
若是啓動腳本 activemq 沒有可執行權限,此時則須要受權(此步可選)ide
$ cd /home/jeesml/activemq-01/bin/
spa
$ chmod 755 ./activemqrest
四、 防火牆中打開對應的端口
ActiveMQ 須要用到兩個端口
一個是消息通信的端口(默認爲 61616)
一個是管理控制檯端口(默認爲 8161)可在 conf/jetty.xml 中修改
# vi /etc/sysconfig/iptables
添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 61616 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8161 -j ACCEPT
重啓防火牆:
# service iptables restart
五、 啓動
$ cd /home/jeesml/activemq-01/bin
$ ./activemq start
六、 打開管理界面:http://xx.xx.xx.xx:8161,
七、 安全配置(消息安全)
ActiveMQ 若是不加入安全機制的話,任何人只要知道消息服務的具體地址(包括 ip,端口,消息地址 [隊列或者主題地址],), 均可以肆無忌憚的 發送、 接收消息。 關 於 ActiveMQ 安裝配置
http://activemq.apache.org/security.html
ActiveMQ 的消息安全配置策略有多種,咱們以簡單受權配置爲例:
在 conf/activemq.xml 文件中在 broker 標籤最後加入如下內容便可:
$ vi /home/jeesml/activemq-01/conf/activemq.xml
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="jeesml" password="jeesml" groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
</plugins>
定義了一個 jeesml 用戶,密碼爲 jeesml,角色爲 users,admins
設置 admin 的用戶名和密碼:
$ vi /home/jeesml/activemq-01/conf/jetty.xml
<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<property name="name" value="BASIC" />
<property name="roles" value="user,admin" />
<!-- set authenticate=false to disable login -->
<property name="authenticate" value="true" />
</bean>
確保 authenticate 的值爲 true(默認)
控制檯的登陸用戶名密碼保存在 conf/jetty-realm.properties 文件中,內容以下:
$ vi /home/jeesml/activemq-01/conf/jetty-realm.properties
# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin:jeesml admin
注意:用戶名和密碼的格式是
用戶名 : 密碼 ,角色名
設置開機啓動:
# vi /etc/rc.local
加入如下內容
## ActiveMQ
su - jeesml-c '/home/jeesml/activemq-01/bin/activemq start'