场景:
1>.apache-activemq搭建单例运行环境与部署
2>.配置一个队列
3>.配置生产者用户与消费者用户
4>.配置基于数据库的消息存储
本例是在Windows10上配置测试
1.官网下载apache-activemq-5.14.5
网址: http://activemq.apache.org/
本例的版本Java环境需要JDK1.7
本例解压到目录:D:\aServ\apache-activemq-5.14.5
如图目录:
2.在D:\aServ\apache-activemq-5.14.5\lib下新增数据库相关包
本例使用mysql存储消息,即需要jar包
common-dbcp.jar
common-pool.jar
mysql-connector-java-5.1.39-bin
3.修改D:\aServ\apache-activemq-5.14.5\conf\activemq.xml
3.1>配置队列和组别
在broker标签下新增plugins标签如下配置
<plugins>
<jaasAuthenticationPlugin configuration="activemq"/>
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry topic=">" read="admins" write="admins" admin="admins"/>
<authorizationEntry queue=">" read="admins" write="admins" admin="admins"/>
<authorizationEntry queue="zbz.queue.platform.iot" read="admins,producers,smarthomes" write="admins,producers" admin="admins"/>
<authorizationEntry topic="zbz.topic.platform" read="admins,producers,consumers,smarthomes" write="admins,producers" admin="admins"/>
<authorizationEntry topic="ActiveMQ.Advisory.>" read="admins,producers,consumers" write="admins,producers,consumers" admin="admins,producers,consumers"/>
<authorizationEntry queue="ActiveMQ.Advisory.>" read="admins,producers,consumers" write="admins,producers,consumers" admin="admins,producers,consumers"/>
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>
说明:
队列 zbz.queue.platform.iot
主题 zbz.topic.platform
自定义组别: smarthomes
3.2>配置mysql消息存储
在broker标签下修改persistenceAdapter标签配置和新建bean标签
<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#mysql-ds"/>
</persistenceAdapter>
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/zbzdb"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
3.3>配置transportConnectors
本例只使用openwire,此处可以修改消息通信端口号,默认是61616
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<!--
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
-->
</transportConnectors>
4.修改D:\aServ\apache-activemq-5.14.5\conf\jetty.xml
此处修改web控制台端口号,默认是8161
<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.修改D:\aServ\apache-activemq-5.14.5\conf\jetty-realm.properties
此处授权,在末端新增如下信息,adminzbz控制台登入使用的用户名
adminzbz: adminzbz, admin
6.修改D:\aServ\apache-activemq-5.14.5\conf\groups.properties
配置用户和分组,在末端新增如下信息
admins=adminzbz,zbz
producers=zbz
consumers=smarthome
smarthomes=smarthome
7.修改D:\aServ\apache-activemq-5.14.5\conf\credentials.properties
配置登入用户名与口令
activemq.username=adminzbz
activemq.password=adminzbz
guest.password=password
8.修改D:\aServ\apache-activemq-5.14.5\conf\users.properties
配置用户名=口令
adminzbz=adminzbz
zbz=zbz
smarthome=smarthome
9.启动
在D:\aServ\apache-activemq-5.14.5-mysql\bin\win64下点击activemq.bat启动
本例测试机器是64位系统即win64文件夹下.
10.初次启动在数据库中会自动创建如下表
ACTIVEMQ_ACKS
ACTIVEMQ_LOCK
ACTIVEMQ_MSGS
12.前台登入
http://127.0.0.1:8161/admin/
adminzbz/adminzbz
前台页面主页:
前台页面队列页面:
以上,感谢.