赞
踩
使用集群的原因
最开始我们介绍了如何安装及运行 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 数据卷的名称
复制红框内的目录
[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 获得认证。guest / guest
[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
[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
[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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。