文章目录
1 环境
zookeeper 集群环境: 192.168.85.141:2181,192.168.85.142:2182,192.168.85.143:2183
activeMQ版本:activeMQ 5.11.1
activeMQ 规划:
主机 | 集群端口 | 消息端口 | 管控台端口 | 安装几点目录 |
---|---|---|---|---|
192.168.85.141 | 62621 | 51511 | 8161 | /root/activeMQ/node-01 |
192.168.85.142 | 62622 | 51512 | 8162 | /root/activeMQ/node-02 |
192.168.85.143 | 62623 | 51513 | 8163 | /root/activeMQ/node-03 |
1.1 防火墙打开端口
#1
firewall-cmd --add-port=62621/tcp --zone=public --permanent
firewall-cmd --add-port=51511/tcp --zone=public --permanent
firewall-cmd --add-port=8161/tcp --zone=public --permanent
firewall-cmd --add-port=61616/tcp --zone=public --permanent
systemctl restart firewalld
#2
firewall-cmd --add-port=62622/tcp --zone=public --permanent
firewall-cmd --add-port=51512/tcp --zone=public --permanent
firewall-cmd --add-port=8162/tcp --zone=public --permanent
#3
firewall-cmd --add-port=62623/tcp --zone=public --permanent
firewall-cmd --add-port=51513/tcp --zone=public --permanent
firewall-cmd --add-port=8163/tcp --zone=public --permanent
1.2 创建目录 并拷贝文件到其他主机
#1号
[root@zook1 ~]# mkdir activemq
[root@zook1 ~]# cd activemq
[root@zook1 ~]# wget https://archive.apache.org/dist/activemq/5.11.1/apache-activemq-5.11.1-bin.tar.gz
[root@zook1 activemq]# tar xvf apache-activemq-5.11.1-bin.tar.gz
[root@zook1 activemq]# mv apache-activemq-5.11.1 node-01
[root@zook1 activemq]# ll
总用量 42384
-rw-r--r-- 1 root root 43399561 2月 18 2015 apache-activemq-5.11.1-bin.tar.gz
drwxr-xr-x 10 root root 193 2月 14 2015 node-01
#2号
[root@zook2 ~]# mkdir -p activemq/node-01
[root@zook1 activemq]#scp -r node-01/ root@192.168.85.142:/root/activemq/node-01
[root@zook2 ~]# mv activemq/node-01/ activemq/node-02
#3号
[root@zook3 ~]# mkdir -p activemq/node-01
[root@zook1 activemq]#scp -r node-01/ root@192.168.85.143:/root/activemq/node-01
[root@zook3 ~]# mv activemq/node-01/ activemq/node-03
1.3 修改管理台的配置端口:vim node-01/conf/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="8163"/>
</bean>
1.4 集群的配置:conf/activemq.xml
在3个ActiveMQ节点中配置。conf/activemq.xml 中的持久化适配器。修改其中的bind、zkAddress、hostname、和zkPath。注意:每个ActiveMQ的BrokerName 必须相同,否则不能加入集群。
#1
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="dubboEdu" dataDirectory="${activemq.data}">
<persistenceAdapter>
<!-- <kahaDB directory="${activemq.data}/kahadb"/> -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="0.0.0.0:62621"
zkAddress="192.168.85.141:2181,192.168.85.142:2182,192.168.85.143:2183"
hostname="zook1"
zkPath="/activemq/leveldb-stores" />
</persistenceAdapter>
<transportConnector name="openwire" uri="tcp://0.0.0.0:51511?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
#2
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="dubboEdu" dataDirectory="${activemq.data}">
<persistenceAdapter>
<!-- <kahaDB directory="${activemq.data}/kahadb"/> -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="0.0.0.0:62622"
zkAddress="192.168.85.141:2181,192.168.85.142:2182,192.168.85.143:2183"
hostname="zook2"
zkPath="/activemq/leveldb-stores" />
</persistenceAdapter>
<transportConnector name="openwire" uri="tcp://0.0.0.0:51512?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
#3
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="dubboEdu" dataDirectory="${activemq.data}">
<persistenceAdapter>
<!-- <kahaDB directory="${activemq.data}/kahadb"/> -->
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="0.0.0.0:62623"
zkAddress="192.168.85.141:2181,192.168.85.142:2182,192.168.85.143:2183"
hostname="zook3"
zkPath="/activemq/leveldb-stores" />
</persistenceAdapter>
<transportConnector name="openwire" uri="tcp://0.0.0.0:51513?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
1.5 启动脚本
#!/bin/sh
echo "start activemq server....."
usage="Usage: $0 (start|stop|status)"
if [ $# -lt 1 ];then
echo $usage
exit 1
fi
behave=$1
echo "$behave activemq cluster"
for host in 1 2 3
do
ssh 192.168.85.14$host "source /etc/profile;/root/activemq/node-0$host/bin/activemq $behave"
done
exit 0
1.6 查看数据
1.6.1 下载工具
https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
1.6.2 解压后
将zip 包进行解压,查看build目录下 ,这里***需要JAVA环境变量***,双击启动
[外链图片转存失败(img-gmVS9Gih-1565936063592)(E:\markdowm\1537231561476.png)]
1.6.3 配置zookeeper主节点
[外链图片转存失败(img-JfdqV3ZA-1565936063593)(E:\markdowm\image\1537231681641.png)]
通过查看activemq 很容易看到elected 为主节点。
[外链图片转存失败(img-YjClIG49-1565936063594)(E:\markdowm\image\1537232161087.png)]
node-01/bin/activemq start
tailf node-01/data/activemq.log
node-02/bin/activemq start
tailf node-02/data/activemq.log
node-03/bin/activemq start
tailf node-03/data/activemq.log
1.7 测试结论
宕机节点不能超过半数,否则集群不可用,则应用会挂掉
failover 协议来 配置activemq 节点
1.8 简易安装集群配置
tar xvf apache-activemq-5.11.1-bin.tar.gz
mv apache-activemq-5.11.1 activemq
<persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="192.168.85.141:2181,192.168.85.142:2181,192.168.85.143:2181"
hostname="192.168.85.141"
sync="local_disk"
zkPath="/activemq/leveldb-stores"/>
</persistenceAdapter>
<replicatedLevelDB
directory="${activemq.data}/leveldb"
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="192.168.85.141:2181,192.168.85.142:2181,192.168.85.143:2181"
hostname="192.168.85.141"
sync="local_disk"
zkPath="/activemq/leveldb-stores"/>