抉择rabbitmq镜像文件
抉择那些带有management版本的镜像,刚开始不理解破费了很长时间没有搭建胜利,查看材料才晓得有的镜像只适宜单机搭建,只有带management的才可能搭建集群。镜像地址:https://hub.docker.com/_/rabb...
下载rabbitmq镜像文件:
docker pull rabbitmq:3.8.3-management
查看镜像文件
docker images
创立三个容器
docker run -d --name yx_rabbitmq1 -p 5672:5672 -p 15672:15672 --hostname rabbitmq1 -e RABBITMQ_ERLANG_COOKIE='rabbitmq' 867da7fcdf92docker run -d --name yx_rabbitmq2 -p 5673:5672 -p 15673:15672 --link yx_rabbitmq1:rabbitmq1 --hostname rabbitmq2 -e RABBITMQ_ERLANG_COOKIE='rabbitmq' 867da7fcdf92docker run -d --name yx_rabbitmq3 -p 5674:5672 -p 15674:15672 --link yx_rabbitmq2:rabbitmq2 --hostname rabbitmq3 -e RABBITMQ_ERLANG_COOKIE='rabbitmq' 867da7fcdf92
PS: 同一个集群的RABBITMQ_ERLANG_COOKIE值须要设置一样,否则后边会出问题。这里不做具体解说,有趣味的话请看我下一期文章。
run 多个容器能够通过--link去关联其它rabbitmq节点,--link {容器名}:hostname
测试节点
在浏览器输出 http://localhost:15672 间接查看当初节点散布状况。
由上图能够看出,三个节点还没有真正产生关联。为了集群内可能互相拜访,须要配置hosts文件。三个容器的hosts文件要配置的一样,如下图所示。
vim /etc/hosts
集群容器关联
1.重置yx_rabbitmq1节点
进入容器yx_rabbitmq1
docker exec -it yx_rabbitmq1 /bin/bash
重置容器 yx_rabbitmq1
rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl start_app
2.设置节点yx_rabbitmq2,将其退出到集群:
进入容器yx_rabbitmq2
docker exec -it yx_rabbitmq2 /bin/bash
节点yx_rabbitmq2与节点yx_rabbitmq1进行关联
rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster --ram rabbit@rabbit1 && rabbitmqctl start_app
3.设置节点yx_rabbitmq3,退出到集群:
进入容器yx_rabbitmq3
docker exec -it yx_rabbitmq3 /bin/bash
节点yx_rabbitmq3与节点yx_rabbitmq2进行关联
rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster --ram rabbit@rabbit2 && rabbitmqctl start_app
PS:实践上yx_rabbitmq3也应该与yx_rabbitmq1进行关联,它是master节点,然而在这里没有设置胜利。最初节点yx_rabbitmq3与节点yx_rabbitmq2进行关联设置胜利了,具体起因还不是很分明。
--ram 示意设置为内存节点,疏忽次参数默认为磁盘节点。该配置启动了3个节点,1个磁盘节点和2个内存节点。
设置好之后,应用 http://localhost:15672 进行拜访,默认账号密码:guest/guest