docker 搭建 rabbitmq 集群
一、安装docker
1、用最简单的方式安装docker 直接使用官方脚本安装 (自动安装)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动docker
sudo systemctl start docker
2、手动安装
如果之前安装了docker,则卸载旧版本,也可以不卸载,只要能用就行
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
然后安装软件docker需要的依赖软件
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
然后安装最新的docker
sudo yum install docker-ce docker-ce-cli containerd.io
启动
sudo systemctl start docker
二、rabbitmq
拉取rabbitmq镜像下载带控制台的mq
docker pull rabbitmq:3.8.9-management
启动镜像,网络就选择默认的bridge模式 我们直接启动三个容器 -d 表示后台运行 --hostname 设置host名称 --name 容器的别名 -p 端口映射 -e 设置erlang cookie //集群中erlang cookie 必须一致
docker run -d --hostname devRabbit1 --name qhDevRabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.8.9-management
docker run -d --hostname devRabbit2 --name qhDevRabbit2 -p 5673:5672 --link qhDevRabbit1:devRabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.8.9-management
docker run -d --hostname devRabbit3 --name qhDevRabbit3 -p 5674:5672 --link qhDevRabbit1:devRabbit1 --link qhDevRabbit2:devRabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.8.9-management
然后进入每个容器去配置集群
第一个
docker exec -it qhDevRabbit1 bash
进入容器内执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
第二个
docker exec -it qhDevRabbit2 bash
进入容器内执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@devRabbit1
rabbitmqctl start_app
第三个
docker exec -it qhDevRabbit3 bash
进入容器内执行
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@devRabbit1
rabbitmqctl start_app
后面两个的命令都是一样的
设置镜像队列策略任意节点执行
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
最后进入管理控制台看就行了
访问地址: http://ip:15672