ActiveMQ 是Apache出品,最流行的. 功能强大的即时通讯和集成模式的开源服务器,ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,提供客户端支持跨语言和协议,带有易于在充分支持JMS 1.1和1.4使用J2EE企业集成模式和许多先进的功能。
1、环境
CentOS7
JRE-1.8 下载
ActiveMQ 5.16.1
2、JDK安装
zookeeper是需要依赖于JDK环境的,如果未安装,请先安装。
3、安装与配置
3.1 上传服务器
将文件上传到服务器的 /opt/module/software/ActiveMQ 目录
cd /opt/module/software/ActiveMQ/
3.2 解压到指定目录
tar -zxvf apache-activemq-5.16.1-bin.tar.gz
cd /opt/module/software/ActiveMQ/apache-activemq-5.16.1
bin存放的是脚本文件
conf存放的是基本配置文件
data存放的是日志文件
docs存放的是说明文档
examples存放的是简单的实例
lib存放的是activemq所需jar包
webapps用于存放项目的目录
webapps-demo:activemq使用实例目录。
3.3 安全配置
官方参考地址:http://activemq.apache.org/security.html
3.3.1 控制台安全配置
1 编辑 jetty.xml
vi 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" />
确保 authenticate 的值为 true(默认)
2 编辑 jetty-realm.properties
vi jetty-realm.properties
# username: password [,rolename ...]
admin: admin123, admin
注意: 用户名和密码的格式是 => 用户名 : 密码 ,角色名
3.3.2 客户端安全配置
一共分为多种配置,这里介绍两种,普通认证策略和高级认证策略,这里我使用的是 普通认证策略
cd /opt/module/software/ActiveMQ/apache-activemq-5.16.1/conf
vi activemq.xml
在 conf/activemq.xml 文件中在 broker 标签最后加入以下内容
普通认证策略
<plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="auskat" password="123456" groups="users,admins"/> </users> </simpleAuthenticationPlugin> </plugins>
定义了一个auskat用户,密码为123456,角色为 users,admins
高级认证策略
<!--使用JAAS插件进行高级认证策略--> <jaasAuthenticationPlugin configuration="activemq" /><authorizationPlugin> <map> <authorizationMap> <authorizationEntries> <authorizationEntry topic=">" read="admins" write="admins" admin="admins" /> <authorizationEntry queue=">" read="admins" write="admins" admin="admins" /> <!--authorizationEntry topic="FirstTopic" read="smeall,smeadmin" write="smeadmin" admin="smeall,smeadmin" /--> <authorizationEntry topic="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins"/> <authorizationEntry queue="ActiveMQ.Advisory.>" read="admins" write="admins" admin="admins"/> </authorizationEntries> </authorizationMap> </map> </authorizationPlugin>
3.3.3 允许远程访问
编辑 jetty.xml
vi 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>
host value 修改 value="0.0.0.0"
3.4 测试启动
3.4.1 启动 ActiveMQ
cd /opt/module/software/ActiveMQ/apache-activemq-5.16.1/bin
./activemq start
jps -l84187 /opt/module/software/ActiveMQ/apache-activemq-5.16.1//bin/activemq.jar
3.4.3 查看状态
./activemq status
如果出现问题,使用 ./activemq console 查看错误日志
如果是端口占用,使用 lsof -i:8161 查看端口信息,8161是端口号
3.4.4 管理页面
192.168.1.100:8161/admin
输入自己设置的账号即可
3.4.5 停止 ActiveMQ
./activemq status stop