使用Docker搭建RabbitMq集群还是非常方便的,下面就正式来搭建一下,关于涉及到的docker命令可以在我的另一篇文章中查看,在写docker那篇文章
搭建RabbitMq一共只需要两步,第一步:安装rabbitmq 第二步:将rabbirMq节点加入到集群
第一步:
docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management (RabbitMq1)
docker run -d --hostname rabbit2 --name myrabbit2 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management (RabbitMq2)
docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management (RabbitMq3)
关于参数的说明,如果使用云服务器一定要将安全组对应的端口号打开,否则是无法访问的
- -d 后台进程运行
- hostname RabbitMQ主机名称
- name 容器名称
- -p port:port 本地端口:容器端口
- -p 15672:15672 http访问端口
- -p 5672:5672 amqp访问端口
RABBITMQ_ERLANG_COOKIE='rabbitcookie'
关于这个参数的设置,如果不使用docker安装的话,一定会安装erlang,因为rabbitmq服务器是基于erlang语言编写的,所以要将同一个集群的cookie值设置为一样,代表在同一个集群,那么如果原来你有几个单独的rabbitmq,现在想做成集群,就必须要使cookie一样,我们可以使用docker logs +容器id查看cookie所在的文件夹位置。所以Erlang Cookie的全部路径就是“/var/lib/rabbitmq/.erlang.cookie”。 就可以使用docker cp 命令复制文件。
现在现在所有的节点已经搭建完毕,这里可以使用 docker ps 查看一下容器是否运行,如果没有运行,使用docker start +容器id 运行容器
第二步:将节点加入到集群
docker exec -it myrabbit1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit (节点1)
docker exec -it myrabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit (节点二)
docker exec -it myrabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit (节点3)
现在集群就已经搭建完毕,可以到web界面查看,默认账号密码为guest/guest,设置账号密码也在另一篇文章中写到了,写docker的那篇
如有错误请及时联系纠正!!!!