# ActiveMQ 5.16.2软件下载
> [windows下载](https://www.apache.org/dyn/closer.cgi?filename=/activemq/5.16.2/apache-activemq-5.16.2-bin.zip&action=download),[linux下载](https://www.apache.org/dyn/closer.cgi?filename=/activemq/5.16.2/apache-activemq-5.16.2-bin.tar.gz&action=download)
# 通用配置修改
> 1、activemq.xml-修改 brokerName
``` java
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="brokerA" dataDirectory="${activemq.data}">
```
> 2、activemq.xml-修改支持通信协议
``` java
<transportConnector name="openwire" uri="tcp://0.0.0.0:61617?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"/>
-->
```
> 3、jetty.xml-修改admin启动端口
```java
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
<!-- the default port number for the web console -->
<property name="host" value="127.0.0.1"/>
<property name="port" value="8161"/>
</bean>
```
# 单机HA部署(共享文件夹)
> 1、每一个软件activemq.xml-共享文件夹配置
```java
<persistenceAdapter>
<kahaDB directory="D:\micro-component\activeMQ\mqcluster\mq1\apache-activemq-5.16.2\data\kahadb" />
</persistenceAdapter>
```
# 多机HA部署(共享数据库)
> 1、mysql [数据驱动](https://gitee.com/fhz/active-mq-jdbc-dependency.git)jar导入activeMQ/lib
> 2、activemq.xml-配置数据库
```java
<bean id="mysql-db" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://10.159.0.0:13306/mq?relaxAutoCommit=true" />
<property name="username" value="root"/>
<property name="password" value="root" />
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
```
> 3、activemq.xml-实例化配置
```java
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#mysql-db" />
</persistenceAdapter>
```
# 多机HA部署(zookeeper)
> 配置描述
| 主机| 服务端口| 主从实例间的通讯端口(动态)| jetty控制台端口|
| :-----| :-----| :-----| :-----|
|127.0.0.1|61616|tcp://0.0.0.0:0|8161|
|127.0.0.1|61617|tcp://0.0.0.0:0|8162|
|127.0.0.1|61618|tcp://0.0.0.0:0|8163|
> 2、activemq.xml-修改持久化策略
```
<!--
replicas - 当前主从模型中的节点数,根据实际配置
bind - 主从实例间的通讯端口。(可动态,可指定,动态如tcp://0.0.0.0,指定tcp://0.0.0.0:62626分别配置为62626、62627、62628)
zkAddress - zookeeper应用的安装位置
zkPath - ActiveMQ的主从信息保存在zookeeper中的什么目录
hostname - ActiveMQ实例安装的实际linux主机名。可在 /etc/hosts 中进行配置,设置格式:ip 主机名
-->
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/levelDB"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="127.0.0.1:2181"
zkPath="/activemq/leveldb-stores"
hostname="10.159.110.0"
/>
</persistenceAdapter>
```