回复
Docker实战之Rabbitmq集群搭建
LoveBank
发布于 2022-6-24 17:14
浏览
0收藏
作者 |上海滩虎哥
来源 | 今日头条
Docker搭建Rabbitmq集群
RabbitMQ是轻量级的开源消息中间件,易于在本地和云上部署。它支持多种消息传递协议,可以满足高规模、高可用性的需求。本例搭建三个节点的rabbitmq集群。
创建专属网络
$ docker network create -d overlay --attachable --subnet=172.31.0.0/24 rabbitmq-cluster
不懂网络这块的,可以关注看前面发表的docker网络创建和管理
创建数据目录
把消息数据挂载到磁盘上,防止丢失。根据需要Rabbitmq相关的配置文件也可挂载出来
$ mkdir -p /data/rabbitmq
注意:三个节点均要创建目录
编辑docker-compose.yaml
version: "3.9"
services:
rabbit1:
image: rabbitmq:3.8.9-management
hostname: rabbit1
environment:
RABBITMQ_DEFAULT_USER: <用户名>
RABBITMQ_DEFAULT_PASS: <密码>
RABBITMQ_ERLANG_COOKIE: "<自定义字符串>"
RABBITMQ_NODENAME: rabbit1
volumes:
- /data/rabbitmq:/var/lib/rabbitmq
ports:
- "4369:4369"
- "5671:5671"
- "5672:5672"
- "15671:15671"
- "15672:15672"
- "25672:25672"
networks:
rabbitmq-cluster:
ipv4_address: 172.31.0.3
rabbit2:
image: rabbitmq:3.8.9-management
hostname: rabbit2
depends_on:
- rabbit1
environment:
RABBITMQ_DEFAULT_USER: <用户名>
RABBITMQ_DEFAULT_PASS: <密码>
RABBITMQ_ERLANG_COOKIE: "<自定义字符串>"
RABBITMQ_NODENAME: rabbit2
volumes:
- /data/rabbitmq:/var/lib/rabbitmq
networks:
rabbitmq-cluster:
ipv4_address: 172.31.0.4
rabbit3:
image: rabbitmq:3.8.9-management
hostname: rabbit3
depends_on:
- rabbit1
environment:
RABBITMQ_DEFAULT_USER: <用户名>
RABBITMQ_DEFAULT_PASS: <密码>
RABBITMQ_ERLANG_COOKIE: "<自定义字符串>"
RABBITMQ_NODENAME: rabbit3
volumes:
- /data/rabbitmq:/var/lib/rabbitmq
networks:
rabbitmq-cluster:
ipv4_address: 172.31.0.5
networks:
rabbitmq-cluster:
external: true
注意:
RABBITMQ_DEFAULT_USER:填写用户名
RABBITMQ_DEFAULT_PASS:填写密码
RABBITMQ_ERLANG_COOKIE:填写erlang_cookie,三个节点的cookie值必须相同
发布rabbitmq服务
选择一个节点发布服务,由于是跨主机,需要在swarm集群环境下发布
$ docker stack deploy --compose-file docker-compose.yml rabbit
从节点加入集群
以rabbit1为主节点,rabbit2和rabbit3为从节点
#先进入从节点服务器
$ docker exec -it <用具体的容器名称或id代替> bash
#进入容器后,先停止rabbitmq
$ rabbitmqctl stop_app
$ rabbitmqctl reset
#把该节点加入到主节点rabbit1
$ rabbitmqctl join_cluster rabbit1@rabbit1
#重启
$ rabbitmqctl start_app
至此,Rabbitmq集群搭建完成,访问rabbitmq控制台http://ip:15672。
分类
已于2022-6-24 17:14:27修改
赞
收藏
回复
相关推荐