1、安装环境
- CentOS6.5
- JDK1.8
- IP:192.168.31.103
- 安装用户:普通用户
2、安装JDK并配置相关环境变量
下载JDK包,并配置环境变量
$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-x64.tar.gz
$ tar zxvf jdk-8u201-linux-x64.tar.gz -C /usr/java/
$ vim /etc/profile #在文件底部添加
JAVA_HOME=/usr/java/jdk1.8.0_201
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
$ java -version
java version "1.8.0_201"
java(TM) Runtime Environment (build 1.8.0_201-b09)
java HotSpot(TM) 64-Bit Server VM (build 1.8.0_201-b09, mixed mode)
3、下载Linux版本的ActiveMQ
$ wget http://apache.fayea.com/activemq/5.11.1/apache-activemq-5.11.1-bin.tar.gz #使用apache-activemq-5.11.1-bin.tar
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用户后,在防火墙中打开所需的两个端口后并重启防火墙
$ su - root #切换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
$ 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'