Day177.ActiveMQ多节点集群 -ActiveMQ

ActiveMQ

ActiveMQ多节点集群

1、部署规划和步骤

1、大概流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-deGSwU9G-1611804398650)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127165758389.png)]

如何保证高可用 ==》 搭建集群

ZooKeeper + Replicated LevelDB Store ==》

​ 集群 http://activemq.apache.org/replicated-leveldb-store

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cm69EzOr-1611804398653)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127165816927.png)]

这幅图的意思就是 Client们都连接Master,Slave不接收连接。当 Master 宕机后,zookeper 监测到没有心跳信号, 则认为 master 宕机了,然后选举机制会从剩下的 Slave 中选出一个作为 新的 Master

2、环境和版本

zookeper : 3.4.10

JDK:1.8.0.161

activemq:5.16.0

CentOS-7-x86_64-Minimal-2009

3、关闭防火墙并保证win可以ping通过ActiveMQ服务器

4、要求具备ZK集群并可以成功启动

5、集群部署规划列表

主机 Zookeeper集群端口 AMQ集群bind端口 AMQ消息tcp端口 管理控制台端口 AMQ节点安装目录
192.168.109.101 2181 bind=“tcp://0.0.0.0:63631” 61616 8161 /mq_cluster/mq_node01
192.168.109.102 2182 bind=“tcp://0.0.0.0:63632” 61617 8162 /mq_cluster/mq_node02
192.168.109.103 2183 bind=“tcp://0.0.0.0:63633” 61618 8163 /mq_cluster/mq_node03

6、创建3台集群目录、修改管理控制台端口号

复制之前做的activemq的文件夹,将其还原初始化默认,并在创建/mq_cluster文件夹,将其赋值于文件夹下,并再复制2个分别命名为:

mq_node01、mq_node02、mq_node03

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wT3nlakd-1611804398654)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127181020475.png)]

分别将每台的端口 (jetty.xml)修改为 8161、8162、8163

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4vft9Y9x-1611804398658)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127180932133.png)]


7、host名字映射

红框部分修改为自己的ip和地址i映射

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fi96iBoz-1611804398661)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127181523394.png)]

ip addr #查看ip

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bxHYOu2K-1611804398663)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127181657389.png)]


8、ActiveMQ集群配置

配置三台activemq的broker_Name为一致:achang

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q4UxBF5D-1611804398665)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127182051423.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pU6y1zc9-1611804398666)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127182028614.png)]

3个activemq节点的持久化配置:↓

三个都要配置,bind绑定的端口分别为:63631、63632、63633

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V3QsMvRr-1611804398668)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127183811131.png)]


9、修改各activemq节点的消息端口

修改三台节点的后台消息端口分别为:61616、61617、61618

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dhVyUcxN-1611804398669)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127184632654.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nK9ph9F0-1611804398670)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127184721224.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TZ5jGcT7-1611804398671)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127184753643.png)]


10、按顺序启动3个ActiveMQ节点

启动至少3台的zookeeper集群:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jO5cNhrp-1611804398673)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127185153922.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ObEl1Gmy-1611804398674)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127185207362.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9dtHbhYa-1611804398676)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127185218963.png)]

到这步提前是zk集群已经成功启动运行


11、zk集群的节点状态说明

启动客户端:

[root@s1 zookeeper-3.4.10]$ bin/zkCli.sh
ls /   # 查看所有根节点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NfvhKhGB-1611804398677)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127231254636.png)]

观察到我们上面的activemq已经连接到了zookepper里面

阿昌遇到的问题

启动后zk集群后,并连接,发现没有上图自己设置的activemq,找了好久的原因,以为自己上面配置流程出错了。后面发现,自己的3台activemq都没启动,所以才会没有。如果还有问题就一个一个restart一下activemq!!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C3aBG9IT-1611804398678)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127234903648.png)]

查看我的节点状态 :

get /activemq/leveldb-stores/00000000022

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CNtDSCul-1611804398680)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210127235251123.png)]

此次验证表明 00000000020 的节点状态是master ,而其余的(00000000021 00000000022 ) activemq 的节点是 slave

如此集群顺利搭建成功 !!!!!!!!!


2、集群可用性测试

此次测试表明只有 8162 的端口可以使用,也就是8162 代表的就是master

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hu5VZdZi-1611804398681)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210128002217815.png)]

其他的8161、8163都访问不了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VratzUjQ-1611804398682)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210128001906509.png)]

测试集群可用性:

(1)首先:

修改代码

public static final String ACTIVEMQ_URL = "failover:(tcp://192.168.109.101:61616,tcp://192.168.109.101:61617,tcp://192.168.109.101:61618)?randomize=false";

public static final String QUEUE_NAME = "queue_cluster";

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yIpBVgtD-1611804398684)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210128004452924.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5SpzXBjY-1611804398685)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210128004503323.png)]

以上代表集群可以正常使用 !!↑


此时真正的可用性测试:

kill 11470 # 现在的master activemq

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5PtDrobY-1611804398686)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210128004254545.png)]

马上对应的8162失效

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7vTTTKdW-1611804398687)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210128004331531.png)]

但是马上就会选出新的master,实现了高可用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vHzzZUn0-1611804398688)(C:\Users\PePe\AppData\Roaming\Typora\typora-user-images\image-20210128004351839.png)]

这样! 集群的可用性测试成功!!!

感谢尚硅谷

猜你喜欢

转载自blog.csdn.net/qq_43284469/article/details/113316798