乐趣区

关于rabbitmq:docker安装rabbitmq集群

抉择 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' 867da7fcdf92

docker run -d --name yx_rabbitmq2 -p 5673:5672 -p 15673:15672 --link yx_rabbitmq1:rabbitmq1 --hostname rabbitmq2 -e RABBITMQ_ERLANG_COOKIE='rabbitmq' 867da7fcdf92

docker 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

退出移动版