首先简单的介绍一下MQ,MQ英文名MessageQueue,中文名也就是大家用的消息队列,干嘛用的呢,说白了就是一个消息的接受和转发的容器,可用于消息推送。
ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多种语言的客户端和协议,而且可以非常容易的嵌入到企业的应用环境中,并有许多高级功能,下面我们来安装ActiveMQ单机版。
1.在官网下载ActiveMQ,并上传到服务器
2.解压安装
# tar -zxvf apache-activemq-5.11.1-bin.tar.gz3.如果启动脚本activemq没有可执行权限,此时则需要授权
# chmod 755 /opt/activeMQ/apache-activemq-5.11.1/bin/activemq4.配置端口
ActiveMQ需要用到两个端口,一个是消息通讯的端口(默认为61616) 一个是管理控制台端口(默认为 8161)可在 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.启动ActiveMQ
# /opt/activeMQ/apache-activemq-5.11.1/bin/activemq start6.访问ActiveMQ
点击manage ActiveMQ出现账号密码校验界面,默认账号密码为:admin/admin
7.安全配置
ActiveMQ如果不加入安全机制的话,任何人只要知道消息服务的具体地址(包括 IP,端口,消息地址[队列或者主题地址]),都可以肆无忌惮的发送,接收消息。所以我们要为ActiveMQ进行安全配置,ActiveMQ的消息安全配置策略有多种,我们以简单授权配置为例。
7.1在conf/activemq.xml文件中在broker标签最后加入以下内容即可:
# vim /opt/activeMQ/apache-activemq-5.11.1/conf/activemq.xml <plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="roberto" password="roberto" groups="users,admins"/> </users> </simpleAuthenticationPlugin> </plugins> 定义了一个用户账号为roberto密码为roberto,对应的角色为users,admins7.2 确保启用认证
确保authenticate的值为 true <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.3 控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,内容如下:
# vim /opt/activeMQ/apache-activemq-5.11.1/conf/jetty-realm.properties # Defines users that can access the web (console, demo, etc.) # username: password [,rolename ...] admin: roberto, admin user: user, user修改admin用户的密码为roberto
7.4 重启ActiveMQ
# /opt/activeMQ/apache-activemq-5.11.1/bin/activemq restart推荐阅读:
Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析
Java消息队列--ActiveMQ 实战
CentOS 6.5启动ActiveMQ报错解决