AMQ 6.3 安装测试
本文包括 JBoss AMQ 6.3 安装测试
软件下载
登录 https://access.redhat.com(需要红帽账号),进入AMQ 下载页面(https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?downloadType=distributions&product=jboss.amq.broker&version=6.3.0),选择下载 Red Hat JBoss AMQ 6.3.0,可根据需求下载相应的其他组件。下载完成后会有如下文件:
jboss-a-mq-6.3.0.redhat-262.zip
安装
AMQ 运行环境说明
支持运行的平台
JBoss AMQ 6.3 支持的运行平台包括:Red Hat Enterprise Linux 7,Red Hat Enterprise Linux 6,Microsoft Windows Server 2012 等,详细请参照 https://access.redhat.com/articles/310613。
支持运行的 Java 版本
JBoss AMQ 6.3 支持的运行 Java 版本包括 Oracle JDK 1.7.x,Oracle JDK 1.8.x,OpenJDK 1.7.x,OpenJDK 1.8.x 等,详细请参照 https://access.redhat.com/articles/310613。
支持的标准和协议
JBoss AMQ 6.3 支持的标准和协议包括:JMS,AMQP 等,详细请参照https://access.redhat.com/articles/375833。
安装 JBoss AMQ
解压软件下载部分下载完成的 zip 包即完成了安装:
$ unzip jboss-a-mq-6.3.0.redhat-262.zip
安装完成生成 jboss-a-mq-6.3.0.redhat-262 目录即为 AMQ 的主目录。进入AMQ 主目录
$ cd jboss-a-mq-6.3.0.redhat-262/
该目录下 etc 目录中保存这配置文件,bin 目录下为启动脚本,extras 下为和社区版 ActiveMQ比较接近的 apache-activemq-5.11.0.redhat-630262-bin.zip
.
添加用户
编辑 etc/users.properties 文件,添加
jboss=Abcd1234!,admin,manager,viewer,Operator, Maintainer, Deployer, Auditor, Administrator, SuperUser
save=save_activemq@123,admin,manager,viewer,Operator, Maintainer, Deployer, Auditor, Administrator, SuperUser
cmsfe=cmsfe_activemq@123,admin,manager,viewer,Operator, Maintainer, Deployer, Auditor, Administrator, SuperUser
保存修改并退出。
Broker 属性配置
编辑 etc/activemq.xml 配置文件,分别修改 brokerName 为 amq1,useJmx 为 true:
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="amq1" dataDirectory="${data}" useJmx="true">
传输连接器配置
编辑 etc/activemq.xml 配置文件,添加
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
启动 AMQ
在 Linux 下启动执行
./bin/start
在 Windows 下启动执行
bin\start.bat
安装测试
访问 http://localhost:8181/ 登录 AMQ 管理控制台, 登录后可以查看一些默认配置信息。另外运行 SimplePing,如果能接收到返回字符串 “PING JBOSS AMQ 6.3 SUCCESS!”,则表明安装成功。
安装 Apache ActiveMQ
解压安装包完成安装
$ unzip apache-activemq-5.11.0.redhat-630260-bin.zip
安装完成后生成了 apache-activemq-5.11.0.redhat-630260 目录,进入此目录。
配置
conf/users.propertiesadmin=admin
conf/credentials.propertiesactivemq.username=admin
activemq.password=admin
guest.password=password
conf/groups.propertiesadmins=admin
conf/activemq.xml<plugins>
<simpleAuthenticationPlugin >
<users>
<authenticationUser username="admin" password="${activemq.password}" groups="users, admins" />
</users>
</simpleAuthenticationPlugin>
</plugins>
conf/activemq.xml<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="true" memoryLimit="100mb">
<pendingMessageLimitStrategy>
<constantPendingMessageLimitStrategy limit="5000"/>
</pendingMessageLimitStrategy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="true" memoryLimit="100mb">
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
conf/activemq.xml<managementContext>
<managementContext createConnector="true" connectorPort="11099">
<property xmlns="http://www.springframework.org/schema/beans" name="environment">
<map xmlns="http://www.springframework.org/schema/beans">
<entry xmlns="http://www.springframework.org/schema/beans" key="jmx.remote.x.password.file" value="${activemq.conf}/jmx.password"/>
<entry xmlns="http://www.springframework.org/schema/beans" key="jmx.remote.x.access.file" value="${activemq.conf}/jmx.access"/>
</map>
</property>
</managementContext>
</managementContext>
conf/activemq.xml<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage percentOfJvmHeap="70" />
</memoryUsage>
<storeUsage>
<storeUsage limit="1 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="2 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
onf/activemq.xml<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=3000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
启动
在 Linux 下启动执行
./bin//activemq start
在 Windows 下启动执行
bin\activemq.bat start
安装测试
使用 http://localhost:8161/hawtio/login 登录管理控制台,登录管理控制台可以查看一些默认的配置。
AMQ 共享存储配置
<persistenceAdapter>
<kahaDB directory="/mq" lockKeepAlivePeriod="2000">
<locker>
<shared-file-locker lockAcquireSleepInterval="10000" />
</locker>
</kahaDB>
</persistenceAdapter>
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage percentOfJvmHeap="70"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="30 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="10 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
基于如上配置,AMQ Broker 可以使用的内存为 Heap 的 70%,持久化消息存储,kahaDB 文件系统可以使用的磁盘大小为 30 GB,处理一些非持久化消息或 DLQ 及其它相关的临时文件可以使用的磁盘大小为 10 GB.
SSL 双向加密认证
服务器端配置
<sslContext>
<sslContext keyStore="file:///path/to/spserver.ks" keyStorePassword="redhat" trustStore="file:///path/to/spserver.ts" trustStorePassword="redhat"/>
</sslContext>
添加 ssl 加密传输链接器配置如下
<transportConnector name="ssl" uri="ssl://0.0.0.0:61617?transport.enabledProtocols=TLSv1,TLSv1.1,TLSv1.2&maximumConnections=1000" />
客户端配置
SSL 客户端需要使用 ActiveMQSslConnectionFactory,具体初始化代码如下
ActiveMQSslConnectionFactory connectionFactory = new ActiveMQSslConnectionFactory();
connectionFactory.setTrustStore("/path/to/spclient.ts");
connectionFactory.setTrustStorePassword("redhat");
connectionFactory.setKeyStore("/path/to/spclient.ks");
connectionFactory.setKeyStorePassword("redhat");
connectionFactory.setBrokerURL("ssl://localhost:61617");
connectionFactory.setUserName("admin");
connectionFactory.setPassword("admin");
Connection connection = connectionFactory.createConnection();
connection.start();
对应 bean 的配置为
<bean id="AMQJMSConnectionFactory" class="org.apache.activemq.ActiveMQSslConnectionFactory">
<property name="trustStore" value="/path/to/spclient.ts" />
<property name="trustStorePassword" value="redhat" />
<property name="keyStore" value="/path/to/spclient.ks" />
<property name="keyStorePassword" value="redhat" />
<property name="brokerURL" value="ssl://localhost:61617" />
<property name="userName" value="admin" />
<property name="password" value="admin" />
</bean>