Docker 安装 RabbitmQ 集群

目录

RabbitmQ集群模式介绍

普通集群模式

1.准备机器

2.配置集群


RabbitmQ集群模式介绍

RabbitMQ 有三种模式:单机模式,普通集群模式,镜像集群模式。单机模式即单独运行一个 rabbitmq 实例,而集群模式需要创建多个 rabbitmq实例

第一种 普通集群模式:rabbitmq集群与其他集群有些不同,rabbitmq集群同步指的是复制队列,元数据信息的同步,即同步的是数据存储信息;消息的存放只会存储在创建该消息队列的那个节点上。并非在节点上都存储一个完整的数据。在通过非数据所在节点获取数据时,通过元数据信息,路由转发到存储数据节点上,从而得到数据 。

第二种 镜像集群模式:与普通集群模式区别 主要是消息实体会主动在镜像节点间同步数据,而不是只存储数据元信息。 故普通集群模式 但凡数据节点挂了,容易造成数据丢失但镜像集群模式可以保证集群只要不全部挂掉,数据就不会丢失,当相对于性能来说,镜像集群模式会比普通集群模式多出消耗数据的传输,故取决于业务场景进行取舍。

普通集群模式

1.准备机器

服务器地址角色备注
192.168.0.1master
192.168.0.2slave
192.168.0.3slave
# 首先三台机器都拉去镜像
docker pull rabbitmq:3.8-rc-management


ssh:192.168.0.1执行
docker run -d -p "4369:4369"  -p "5672:5672"  -p "15672:15672"  -p "25672:25672" -v /opt/rabbitmq:/var/lib/rabbitmq:z --add-host="rabbitmq-01":192.168.0.1 --add-host="rabbitmq-02":192.168.0.2  --add-host="rabbitmq-03":192.168.0.3  --restart=always -e RABBITMQ_ERLANG_COOKIE='rabbitClusterCookie' --hostname rabbitmq01 --name rabbitmq01 rabbitmq:3.8-rc-management


ssh:192.168.0.2执行
docker run -d -p "4369:4369"  -p "5672:5672"  -p "15672:15672"  -p "25672:25672" -v /opt/rabbitmq:/var/lib/rabbitmq:z --add-host="rabbitmq-01":192.168.0.1 --add-host="rabbitmq-02":192.168.0.2  --add-host="rabbitmq-03":192.168.0.3  --restart=always -e RABBITMQ_ERLANG_COOKIE='rabbitClusterCookie' --hostname rabbitmq02 --name rabbitmq02 rabbitmq:3.8-rc-management


ssh:192.168.0.3执行
docker run -d -p "4369:4369"  -p "5672:5672"  -p "15672:15672"  -p "25672:25672" -v /opt/rabbitmq:/var/lib/rabbitmq:z --add-host="rabbitmq-01":192.168.0.1 --add-host="rabbitmq-02":192.168.0.2  --add-host="rabbitmq-03":192.168.0.3  --restart=always -e RABBITMQ_ERLANG_COOKIE='rabbitClusterCookie' --hostname rabbitmq03 --name rabbitmq03 rabbitmq:3.8-rc-management



 Erlang Cookie 值必须相同,也就是一个集群内 RABBITMQ_ERLANG_COOKIE 参数的值必须相同。因为 RabbitMQ 是用Erlang实现的,Erlang Cookie 相当于不同节点之间通讯的密钥,Erlang节点通过交换 Erlang Cookie 获得认证。
 

2.配置集群

2.1配置192.168.0.1

# 无需太多配置,直接查看集群状态
$ docker exec -it rabbitmq01 bash
# 查看集群信息
$ rabbitmqctl cluster_status

2.2配置192.168.0.2

docker exec -it rabbitmq02 bash
rabbitmqctl stop_app
rabbitmqctl reset

#加入集群,表示当前机器的MQ加入到“rabbitmq-01”
#"rabbitmq-01"="192.168.0.1"通过--add-host添加域名配置了 ,自行查看或配置 vi /etc/hosts
rabbitmqctl join_cluster rabbit@rabbitmq-01

rabbitmqctl start_app
# 查看集群信息
rabbitmqctl cluster_status

2.3配置192.168.0.3

docker exec -it rabbitmq03 bash
rabbitmqctl stop_app
rabbitmqctl reset

#加入集群,表示当前机器的MQ加入到“rabbitmq-01”
#"rabbitmq-01"="192.168.0.1"通过--add-host添加域名配置了 ,自行查看或配置 vi /etc/hosts
rabbitmqctl join_cluster rabbit@rabbitmq-01
rabbitmqctl start_app

# 查看集群信息
rabbitmqctl cluster_status
# 健康监测
rabbitmqctl  node_health_check 

2.4.移除节点

# 在要关闭的节点上操作
$ rabbitmqctl  stop_app
# 在主节点上操作: 删除要移除的节点:
$ rabbitmqctl  -n rabbit@rabbitmq-01 forget_cluster_node rabbit@rabbitmq-03

2.5访问

设置好之后,使用任意容器,比如:http://ip:15672/ 进行访问,默认账号密码:guest/guest

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值