栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

基于Docker部署RabbitMQ集群

基于Docker部署RabbitMQ集群

一、使用集群的原因

使用集群的原因

​ 最开始我们介绍了如何安装及运行 RabbitMQ 服务, 不过这些是单机版的, 无法满足目前真实应用的要求. 如果 RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障等情况, 该怎么办? 单台 RabbitMQ 服务器可以满足每秒 1000 条消息的吞吐量, 那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞吐量呢? 购买昂贵的服务器来增强单机 RabbitMQ 的性能显得捉襟见肘, 搭建一个RabbitMQ 集群才是解决实际问题的关键 .

二、集群搭建
第一步、查看本地所有的镜像
[root@HgwServer ~]# docker images

第二步、创建映射数据卷目录

创建文件夹 :

[root@HgwServer soft]# pwd
/home/soft
[root@HgwServer soft]# mkdir rabbitmqcluster
[root@HgwServer soft]# cd rabbitmqcluster
[root@HgwServer rabbitmqcluster]# mkdir rabbitmq01 rabbitmq02 rabbitmq03

创建数据卷 :

[root@HgwServer rabbitmqcluster]# docker volume create rabbit01
[root@HgwServer rabbitmqcluster]# docker volume create rabbit02
[root@HgwServer rabbitmqcluster]# docker volume create rabbit03

查看指定 数据卷 的信息

docker inspect 数据卷的名称

复制红框内的目录

第三步、启动rabbitmq容器
[root@HgwServer rabbitmqcluster]# docker run -d --hostname rabbitmq01 --name rabbitmqCluster01 -v /var/lib/docker/volumes/rabbit01/_data -p 15672:15672 -p 562:5672 -e RABBITMQ_ERLANG_cookie='rabbitmqcookie' rabbitmq:3.8.14-management

[root@HgwServer rabbitmqcluster]# docker run -d --hostname rabbitmq02 --name rabbitmqCluster02 -v /var/lib/docker/volumes/rabbit02/_data -p 15673:15672 -p 563:5672 -e RABBITMQ_ERLANG_cookie='rabbitmqcookie'  --link rabbitmqCluster01:rabbitmq01 rabbitmq:3.8.14-management

[root@HgwServer rabbitmqcluster]# docker run -d --hostname rabbitmq03 --name rabbitmqCluster03 -v /var/lib/docker/volumes/rabbit03/_data -p 15674:15672 -p 564:5672 -e RABBITMQ_ERLANG_cookie='rabbitmqcookie'  --link rabbitmqCluster01:rabbitmq01 --link rabbitmqCluster02:rabbitmq02  rabbitmq:3.8.14-management

主要参数 :

-p 15672:15672 management 界面管理访问端口-p 5672:5672 amqp 访问端口--link 容器之间连接Erlang cookie 值必须相同,也就是一个集群内 RABBITMQ_ERLANG_cookie 参数的值必须相同。因为 RabbitMQ 是用Erlang实现的,Erlang cookie 相当于不同节点之间通讯的密钥,Erlang节点通过交换 Erlang cookie 获得认证。

启动容器成功后,读者可以访问
自己的ip+15672,
账号/密码:guest / guest 第四步、加入RabbitMQ节点到集群

    设置节点1 :
[root@HgwServer rabbitmqcluster]# docker exec -it rabbitmqCluster01 bash
root@rabbitmq01:/# rabbitmqctl stop_app
root@rabbitmq01:/# rabbitmqctl reset
root@rabbitmq01:/# rabbitmqctl start_app
root@rabbitmq01:/# exit
    设置节点2 , 加入到集群 :
[root@HgwServer rabbitmqcluster]# docker exec -it rabbitmqCluster02 bash
root@rabbitmq02:/# rabbitmqctl stop_app
root@rabbitmq02:/# rabbitmqctl reset
root@rabbitmq02:/# rabbitmqctl join_cluster --ram rabbit@rabbitmq01
root@rabbitmq02:/# rabbitmqctl start_app
root@rabbitmq02:/# exit
    设置节点3 , 加入到集群 :
[root@HgwServer rabbitmqcluster]# docker exec -it rabbitmqCluster03 bash
root@rabbitmq03:/# rabbitmqctl stop_app
root@rabbitmq03:/# rabbitmqctl reset
root@rabbitmq03:/# rabbitmqctl join_cluster --ram rabbit@rabbitmq01
root@rabbitmq03:/# rabbitmqctl start_app
root@rabbitmq03:/# exit

主要参数 :

--ram 表示设置为内存节点,忽略次参数默认为磁盘节点。该配置启动了3个节点,1个磁盘节点和2个内存节点。

执行上述操作
这时候 再查看 ip:15672
这时候 再查看 ip:15673
这时候 再查看 ip:15674

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/722245.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号