docker搭建rabbitmq集群---镜像集群模式

前提在centos7中已经装好了docker环境。
1、先创建文件夹做准备

$ mkdir /mydata/rabbitmq
$ cd /mydata/rabbitmq/
$ mkdir rabbitmq01 rabbitmq02 rabbitmq03

2、利用docker命令创建3个rabbitmq实例并启动

$ docker run -d --hostname rabbitmq01 --name rabbitmq01 -v /mydata/rabbitmq/rabbitmq01:/var/lib/rabbitmq -p 15673:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE='atguigu' rabbitmq:management
$ docker run -d --hostname rabbitmq02 --name rabbitmq02 -v /mydata/rabbitmq/rabbitmq02:/var/lib/rabbitmq -p 15674:15672 -p 5674:5672 -e RABBITMQ_ERLANG_COOKIE='atguigu' --link rabbitmq01:rabbitmq01 rabbitmq:management
$ docker run -d --hostname rabbitmq03 --name rabbitmq03 -v /mydata/rabbitmq/rabbitmq03:/var/lib/rabbitmq -p 15675:15672 -p 5675:5672 -e RABBITMQ_ERLANG_COOKIE='atguigu' --link rabbitmq01:rabbitmq01 --link rabbitmq02:rabbitmq02 rabbitmq:management

说明:RABBITMQ_ERLANG_COOKIE节点认证作用,部署集成时,需要同步该值
3、节点加入集群

$ docker exec -it rabbitmq01 /bin/bash
$ rabbitmqctl stop_app
$ rabbitmqctl reset
$ rabbitmqctl start_app
$ docker exec -it rabbitmq02 /bin/bash
$ rabbitmqctl stop_app
$ rabbitmqctl reset
$ rabbitmqctl join_cluster --ram rabbit@rabbitmq01
$ rabbitmqctl start_app
$ docker exec -it rabbitmq03 /bin/bash
$ rabbitmqctl stop_app
$ rabbitmqctl reset
$ rabbitmqctl join_cluster --ram rabbit@rabbitmq01
$ rabbitmqctl start_app

以上就是普通模式集群。
普通模式集群:它们之间只能同步一些元数据,但是Queue中的消息不能同步,如果主节点宕机,就会导致数据丢失,很不友好。

4、实现镜像集群模式

$ docker exec -it rabbitmq01 /bin/bash
$ rabbitmqctl set_policy -p / ha "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
$ rabbitmqctl list_policies -p /

说明:
第二条命令中 /表示虚拟主机,^表示所有队列,策略就是所有队列都是高可用的,它们是自动同步数据(元数据+Queue中的Message)。
第三条命令是查看镜像集群的策略。

镜像集群有自己的一套选举策略,生产者和消费者的请求都会先转到主节点,如果主节点宕机,就会从从节点中重新选举出一个新的主节点。可以理解从节点就是主节点的一个备份。
普通集群与镜像集群的区别:
普通集群只会同步元数据信息,不会同步队列的message信息。而镜像集群会。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值