站点图标 IDC铺

ActiveMQ的单机安装

1、安装环境

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用到两个端口:

<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'
退出移动版