Docker 部署 RabbitMQ集群

作者信息


Author:Vincent

E-Mail:46603415@qq.com

去查看RabbitMQ最新的Docker镜像Tag


https://hub.docker.com/_/rabbitmq?tab=tags

计划规划集群规模信息


192.168.1.221 rabbit1

192.168.1.222 rabbit2

192.168.1.223 rabbit3

分别在分布式集群三台机器拉取最新Tag的image,management是集成管理页面的镜像


docker pull rabbitmq:3.7.27-rc.1-management

在集群三台服务器都创建rabbitmq的持久化目录


mkdir -p /home/data/rabbitmq

在集群三台服务器写入集群配置配置信息到持久化目录


cat <<EOF >>/home/data/rabbitmq/hosts

192.168.1.221 rabbit1

192.168.1.222 rabbit2

192.168.1.223 rabbit3

EOF

rabbit1 执行启动

--net=host是直列利用宿主机网络,大家可以-p 5672:5672 -p 15672:15672

-e RABBITMQ_DEFAULT_USER=root 指定账号

-e RABBITMQ_DEFAULT_PASS=12345 指定密码


docker run -d \

--name rabbit1 \

--net=host \

-h rabbit1 \

--log-opt max-size=10m \

--log-opt max-file=3 \

-v /home/data/rabbitmq:/var/lib/rabbitmq:z \

-v /home/data/rabbitmq/hosts:/etc/hosts \

-e RABBITMQ_DEFAULT_USER=root \

-e RABBITMQ_DEFAULT_PASS=12345 \

-e RABBITMQ_ERLANG_COOKIE='cookie' \

rabbitmq:3.7.27-rc.1-management

rabbit2 执行启动


docker run -d \

--name rabbit2 \

--net=host \

-h rabbit2 \

--log-opt max-size=10m \

--log-opt max-file=3 \

-v /home/data/rabbitmq:/var/lib/rabbitmq:z \

-v /home/data/rabbitmq/hosts:/etc/hosts \

-e RABBITMQ_DEFAULT_USER=root \

-e RABBITMQ_DEFAULT_PASS=12345 \

-e RABBITMQ_ERLANG_COOKIE='cookie' \

rabbitmq:3.7.27-rc.1-management

rabbit3 执行启动


docker run -d \

--name rabbit3 \

--net=host \

-h rabbit3 \

--log-opt max-size=10m \

--log-opt max-file=3 \

-v /home/data/rabbitmq:/var/lib/rabbitmq:z \

-v /home/data/rabbitmq/hosts:/etc/hosts \

-e RABBITMQ_DEFAULT_USER=root \

-e RABBITMQ_DEFAULT_PASS=12345 \

-e RABBITMQ_ERLANG_COOKIE='cookie' \

rabbitmq:3.7.27-rc.1-management

假设为了效果节点都是内存型节点而非硬盘存储型

--ram指定此节点加入集群方式为内存类型,非硬盘节点不持久化数据到硬盘


rabbitmqctl join_cluster --ram rabbit@rabbit1

节点2加入到集群


docker exec -it rabbit2 /bin/bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster rabbit@rabbit1

rabbitmqctl start_app

exit

节点3加入到集群


docker exec -it rabbit3 /bin/bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster rabbit@rabbit1

rabbitmqctl start_app

exit

开启 policy(策略)

  • 1、策略policy概念

使用RabbitMQ镜像功能,需要基于RabbitMQ策略来实现,策略policy是用来控制和修改群集范围的某个vhost队列行为和Exchange行为。策略policy就是要设置哪些Exchange或者queue的数据需要复制、同步,以及如何复制同步。

为了使队列成为镜像队列,需要创建一个策略来匹配队列,设置策略有两个键“ha-mode和 ha-params(可选)”。ha-params根据ha-mode设置不同的值,下表说明这些key的选项。

image.png

name:随便取,策略名称

Pattern:^ 匹配符,只有一个^代表匹配所有

Definition:ha-mode=all 为匹配类型,分为3种模式:all(表示所有的queue)

或者使用命令:

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

  • 2、添加策略

登录rabbitmq管理页面 ——> Admin ——> Policies ——> Add / update a policy

image
  • 3、查看效果

此策略会同步所在同一VHost中的交换器和队列数据。设置好policy之后,使用 http://ip:15672 再次进行访问,可以看到队列镜像同步。

image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335