1、下载或上传安装包到服务器的安装目录,进入安装目录:cd /opt/
2、解压缩:tar -zxvf apache-activemq-5.11.1-bin.tar.gz
3、重命名:mv apache-activemq-5.11.1/ activemq5
4、开启防火墙的端口过滤,默认8161为管控台的端口,61616为消息通信端口
vi /etc/sysconfig/iptables,增加如下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8161 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 61616 -j ACCEPT
--重启防火墙:service iptables restart
其中管控台的端口,可以在此处修改:vi activemq5/conf/jetty.xml
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
<!-- the default port number for the web console -->
<property name="host" value="0.0.0.0"/>
<property name="port" value="8161"/>
</bean>
5、启动服务:./activemq5/bin/activemq start,访问管控台测试
http://192.168.0.207:8161,默认用户名和密码为:admin
6、管控台权限控制和密码修改
--修改默认密码
vi activemq5/conf/jetty-realm.properties,如下:
# username: password [,rolename ...]
admin: admin, admin
user: user, user
--修改是否需要验证登录
vi activemq5/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>
7、查看启动日志
tail -f activemq5/data/activemq.log
8、开机自启动
vi /etc/rc.local,增加如下内容
#JAVA_HOME
export JAVA_HOME=/opt/jdk1.7.0_07
#activemq
/opt/activemq5/bin/activemq start
9、安全配置(消息安全),如果不设置安全策略,其他人在得知服务地址和端口的情况下,可以无限制的发送消息或者获取已知队列主题数据。
vi activemq5/conf/activemq.xml,在<borker>节点中增加简单访问权限控制,可加在</broker>节点上方:
<plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="${activemq.username}" password="${activemq.password}" groups="users,admins"/> </users> </simpleAuthenticationPlugin> </plugins>
10、管理界面说明
Number Of Consumers:表示消费者数量;
Number Of Pending Messages:等待消费的消息,这个是当前未出队列的数量;
Messages Enqueued:进入队列的消息;( 这个数量只增不减,重启acmq后会清零)
Messages Dequeued:出了队列的消息 可以理解为是消费这消费掉的数量 (重启acmq后会清零)
一般情况下,
1、当有生产者在发送消息,同时有消费者在消费消息的话,Number Of Pending Messages=0,Messages Enqueued=Messages Dequeued.即:等待消费数量为0,入队的和出队的消息相等(最终)。
2、当有生产者在发送消息,没有消费者的时候,Number Of Pending Messages=Messages Enqueued.即:入队的消息数等于待消费的数。
3、当AMQ重启后,Messages Enqueued=Messages Dequeued = 0(即:清零),如果设置了消息的持久化,那么重启前没有被消费的消息会在Number Of Pending Messages中显示。