ActiveMQ的安装(单机版)
1、安装环境
CentOS6.5、JDK1.7
IP:192.168.31.103
安装用户:普通用户
2、安装JDK并配置相关环境变量(略)
<p>
3、下载Linux版本的ActiveMQ(示例使用apache-activemq-5.11.1-bin.tar)
$ wget http://apache.fayea.com/activemq/5.11.1/apache-activemq-5.11.1-bin.tar.gz
4、解压安装
解压安装包:$ tar -zxvf apache-activemq-5.11.1-bin.tar.gz
重命名:$ mv apache-activemq-5.11.1 activemq-01
5、防火墙中打开对应的端口
ActiveMQ用到两个端口
一个是消息通讯的端口(默认为61616)
一个是管理控制台端口(8161),可以在conf/jetty.xml中修改,如下:
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start"> <property name="host" value="0.0.0.0"/> <property name="port" value="8161"/> </bean>
切换到root用户后,在防火墙中打开所需的两个端口后并重启防火墙
切换root用户:$ su root
编辑端口配置文件:$ vi /etc/sysconfig/iptables
添加
## activemq -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
退出root用户:$ exit
6、启动ActiveMQ
$ cd /home/dreyer02/activemq-01/bin/
$ ./activemq start
会看到输出
INFO: Loading '/home/dreyer02/activemq-01/bin/env' INFO: Using java '/usr/java/jdk1.7/jdk1.7.0_79/bin/java' INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details INFO: pidfile created : '/home/dreyer02/activemq-01/data/activemq.pid' (pid '5890')
查看ActiveMQ的进程
$ ps -ef|grep activemq
7、打开管理界面
默认的用户名和密码为:admin/admin
登录后的界面
各个参数说明:
Name:队列的名称
Number Of Pending Message:等待消费的消息
Number Of Consumeers:消费者的数量
Message Enqueued:进入队列的消息
Message Dequeued:出了队列的消息
当有一个消息进入消息队列后,等待消费的消息是1,进入队列的消息是1。当消息消费后,等待消费的消息是0,进入队列的消息还是1,出了队列的消息是1,再来一条消息时,等待消费的消息是1,进入队列的消息是2,以此类推。
8、安全配置(消息安全)
ActiveMQ如果不加入安全机制的话,那任何人只要知道消息的具体地址(IP、端口、消息地址【队列或者主题地址】),都可以肆无忌惮的发消息,接受消息。
Activemq的消息安全配置策略有很多种,我们以最简单的授权为例。
在conf/activemq.xml文件中,在broker标签最后加入以下内容即可
$ vi /home/dreyer02/activemq-01/conf/activemq.xml
<plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="dreyer" password="dreyer" groups="users,admins"/> </users> </simpleAuthenticationPlugin> </plugins>
意思为定义一个dreyer用户,密码为dreyer,角色为users、admins
9、设置管理控制台的用户名和密码
$ vi /home/dreyer02/activemq-01/conf/jetty.xml
确保authenticate的值为true(默认)
<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint"> <property name="name" value="BASIC" /> <property name="roles" value="user,admin" /> <property name="authenticate" value="true" /> </bean>
控制台的登录用户名和密码保存在conf/jetty-realm.properties文件中
$ vi /home/dreyer02/activemq-01/conf/jetty-realm.properties
# Defines users that can access the web (console, demo, etc.) # username: password [,rolename ...] admin: 123456, admin user: user, user
注意:用户名和密码的格式是
用户名:密码,角色名
重启ActiveMQ
$ /home/dreyer02/activemq-01/bin/activemq restart
10、设置开机启动
# vi /etc/rc.local
添加
## ActiveMQ su - dreyer02-c '/home/dreyer02/activemq-01/bin/activemq start'