ActiveMQ集群安装与配置
1. 准备环境
centOS7
zookeeper
JDK8
安装可参考:
JDK8安装: http://blog.****.net/qq_21299835/article/details/79333532
zookeeper集群安装:http://blog.****.net/qq_21299835/article/details/79444929
2. 下载ActiveMQ
下载地址:http://activemq.apache.org/download.html
3. 在集群中创建activemq文件夹,路径为/usr/activemq
cd /usr
mkdir activemq
上传apache-activemq-5.15.2-bin.tar.gz到 /usr/activemq
4. 解压并重命名目录
tar -zxvf apache-activemq-5.15.2-bin.tar.gz
centOS7_1 : mv apache-activemq-5.15.2 node-01
centOS7_2 : mv apache-activemq-5.15.2 node-02
centOS7_3 : mv apache-activemq-5.15.2 node-03
5. 修改管控台端口, 文件在conf/jetty.xml
node-01:
<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>
node-02:
<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="8162"/>
</bean>
node-03:
<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="8163"/>
</bean>
6. 修改activemq.xml集群配置文件 文件路径conf/activemq.xml
node-01:
<persistenceAdapter>
<!-- kahaDB directory="${activemq.data}/kahadb"/ -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62621"
zkAddress="192.168.1.217:2181,192.168.1.216:2182,192.168.1.218:2183"
hostname="192.168.1.217"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
node-02:
<persistenceAdapter>
<!-- kahaDB directory="${activemq.data}/kahadb"/ -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62622"
zkAddress="192.168.1.217:2181,192.168.1.216:2182,192.168.1.218:2183"
hostname="192.168.1.216"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
node-03:
<persistenceAdapter>
<!-- kahaDB directory="${activemq.data}/kahadb"/ -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:62623"
zkAddress="192.168.1.217:2181,192.168.1.216:2182,192.168.1.218:2183"
hostname="192.168.1.218"
zkPath="/activemq/leveldb-stores"
/>
</persistenceAdapter>
7. 修改消息端口
node-01:
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:51511?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>
node-02:
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:51512?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>
node-03:
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:51513?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>
8. 在防火墙中打开需要的端口
(1)查看防火墙所有打开的端口
firewall-cmd --list-ports
(2)开启端口
centOS_7_1:
firewall-cmd --zone=public --add-port=62621/tcp --permanent
firewall-cmd --zone=public --add-port=51511/tcp --permanent
firewall-cmd --zone=public --add-port=8161/tcp --permanent
centOS_7_2:
firewall-cmd --zone=public --add-port=62622/tcp --permanent
firewall-cmd --zone=public --add-port=51512/tcp --permanent
firewall-cmd --zone=public --add-port=8162/tcp --permanent
centOS_7_3:
firewall-cmd --zone=public --add-port=62623/tcp --permanent
firewall-cmd --zone=public --add-port=51513/tcp --permanent
firewall-cmd --zone=public --add-port=8163/tcp --permanent
9. 重新启动防火墙
(1)关闭防火墙
systemctl stop firewalld.service
(2)开启防火墙
systemctl start firewalld.service
(3)再次查看打开的端口
firewall-cmd --list-ports
10. 启动zookeeper服务
11. 启动activemq服务
cd bin
./activemq start
查看日志
cd data
tail -f activemq.log //日志无报错即配置成功
12. 在项目配置文件中添加mq的配置文件
主要配置如下:
failover:(tcp://192.168.1.217:51511,tcp://192.168.1.216:51512,tcp://192.168.1.218:51513)?randomize=false