docker-rabbitmq集群

1.搭建集群

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

docker run -d --hostname rabbitmq01 --name rabbitmq01 \
-v /mydata/rabbitmq/rabbitmq01:/var/lib/rabbitmq \
-p 15673:5672 -p 5673:5672 \
-e RABBITMQ_ERLANG_COOKIE='rabbitmqcookie' rabbitmq:management

docker run -d --hostname rabbitmq02 --name rabbitmq02 \
-v /mydata/rabbitmq/rabbitmq02:/var/lib/rabbitmq \
-p 15674:5672 -p 5674:5672 \
-e RABBITMQ_ERLANG_COOKIE='rabbitmqcookie' \
--link rabbitmq01:rabbitmq01 rabbitmq:management

docker run -d --hostname rabbitmq03 --name rabbitmq03 \
-v /mydata/rabbitmq/rabbitmq03:/var/lib/rabbitmq \
-p 15675:5672 -p 5675:5672 \
-e RABBITMQ_ERLANG_COOKIE='rabbitmqcookie' \
--link rabbitmq01:rabbitmq01 --link rabbitmq02:rabbitmq02 rabbitmq:management

 注:--hostname 设置容器的主机名
RABBITMQ_ERLANG_COOKIE 节点认证作用,部署集成时 需要同步该值

2.节点加入集群
2.1 进入第一个节点

docker exec -it rabbitmq01 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

 2.2 进入第二个节点

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

# 参数“--ram”表示设置为内存节点,忽略该参数默认为磁盘节点 

 2.3进入第三个节点

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

3.实现镜像集群

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

 参数一:-p / 设置哪个虚拟主机,可以使用rabbitmqctl list_policies -p / 查看vhost 下所有的策略(policies )

参数二:策略名称,可以随便填,此处我们命名为ha(高可用);

参数三:队列名称的匹配规则,使用正则表达式表示,"^"表示所有匹配 ;

参数四:为镜像队列的主体规则,是json字符串,分为三个属性:ha-mode | ha-params | ha-sync-mode,分别的解释如下:

  1.     ha-mode:镜像模式,分类:all/exactly/nodes,all存储在所有节点,包含新增节点;exactly存储x个节点,节点的个数由ha-params指定;nodes指定存储的节点上名称,通过ha-params指定;
  2.     ha-params:作为参数,为ha-mode的补充;
  3.     ha-sync-mode:镜像消息同步方式:automatic(自动),manually(手动);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值