RabbitMQ 镜像集群配置_05

接上一篇:(企业级) RabbitMQ 普通集群配置_04

文章目录

  • 一、RabbitMQ 策略实战
    • 1. 创建RabbitMQ 策略
    • 2. ly-01节点查看创建RabbitMQ 策略
    • 3. 登录ly-02管控台查看创建RabbitMQ 策略
    • 4. 登录ly-03管控台查看创建RabbitMQ 策略
  • 二、添加队列测试
    • 2.1. 添加队列
    • 2.2. Queues菜单-查看添加队列
    • 2.3.创建消息
    • 2.4. 查看创建的消息
    • 2.5. 登录ly-02节点查看创建的消息
    • 2.6. 登录ly-03节点查看创建的消息
  • 三、破坏性测试 ①
    • 3.1. 将ly-01节点的服务关闭
    • 3.2. 浏览器验证ly-01节点是否停止
    • 3.3. 登录ly-02节点管控台查看消息
    • 3.4. 登录ly-03节点管控台查看消息
  • 四、破坏性测试 ②
    • 4.1. 再将ly-02节点的服务关闭
    • 4.2. 浏览器验证ly-02节点是否停止
    • 4.3. 登录ly-03管控台
    • 4.4. 将ly-01和ly-02的服务再启动起来
    • 4.5. 分别登陆3个节点查看消息
    • 4.5. 消息同步
    • 4.6. 分别登录3个节点查看消息状态
  • 五、RabbitMQ 集群脚本
    • 5.1. 创建host.info
    • 5.2. 编写批量执行命令脚本
    • 5.3. 编写批量执行脚本头文件
    • 5.4. bash 运行脚本
    • 5.5. 赋予脚本可执行权限
    • 5.6. 运行脚本

上一篇已经完成RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制。虽然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能等待重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,必须要创建镜像队列。

镜像队列是基于普通的集群模式的,然后再添加一些策略,所以你还是得先配置普通集群,然后才能设置镜像队列,我们就以上面的集群接着做。

一、RabbitMQ 策略实战

设置的镜像队列可以通过开启的网页的管理端,也可以通过命令,建议通过web管控台进行设置,简单高效,效果清晰直观!

1. 创建RabbitMQ 策略

在ly-01节点的控制台上创建策略

(1)点击【admin菜单】–>右侧的【Policies选项】–>左侧最下下边的【Add/update a policy】
(2)按照图中的内容根据自己的需求填写
(3)点击Add policy添加策略
在这里插入图片描述

2. ly-01节点查看创建RabbitMQ 策略

在这里插入图片描述

3. 登录ly-02管控台查看创建RabbitMQ 策略

如图所示:
在这里插入图片描述

4. 登录ly-03管控台查看创建RabbitMQ 策略

如图所示:
在这里插入图片描述

二、添加队列测试

在ly-01节点的控制台操作如下:

2.1. 添加队列

(1)点击【Queues菜单】–>左侧下边的【Add a new queue】
(2)输入Name和Arguments参数的值,别的值默认即可
(3)点击Add queue
在这里插入图片描述

2.2. Queues菜单-查看添加队列

在这里插入图片描述
将鼠标指向+2可以显示出另外两台消息节点

2.3.创建消息

(1)点击ab队列按钮
(2)拖动滚动条,点击publish message
(3)填写相关内容

在这里插入图片描述
在这里插入图片描述
(4)点击Publish message按钮
在这里插入图片描述

2.4. 查看创建的消息

点击Queues按钮,发现ab队列的Ready和Total中多了一条消息记录
在这里插入图片描述

2.5. 登录ly-02节点查看创建的消息

在这里插入图片描述

2.6. 登录ly-03节点查看创建的消息

在这里插入图片描述

三、破坏性测试 ①

3.1. 将ly-01节点的服务关闭

再通过ly-02和ly-03查看消息记录是否还存在

rabbitmqctl stop_app  //停掉ly-01的rabbit应用
  • ly-01节点操作记录
[root@ly-01 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@ly-01 ...
[root@ly-01 ~]# 

3.2. 浏览器验证ly-01节点是否停止

在这里插入图片描述

3.3. 登录ly-02节点管控台查看消息

在这里插入图片描述

3.4. 登录ly-03节点管控台查看消息

在这里插入图片描述
从中可以看到ab队列已经从之前的+2显示成+1了,而且消息记录是存在的。

四、破坏性测试 ②

4.1. 再将ly-02节点的服务关闭

通过ly-03查看消息记录是否还存在

rabbitmqctl stop_app  //停掉ly02的rabbit应用

ly-02节点操作中记录

[root@ly-02 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@ly-02 ...
[root@ly-02 ~]#

4.2. 浏览器验证ly-02节点是否停止

在这里插入图片描述

4.3. 登录ly-03管控台

在这里插入图片描述从中可以看到ab队列和消息记录还是存在的,只是变成了一个节点了。

4.4. 将ly-01和ly-02的服务再启动起来

rabbitmqctl start_app   //启动ly-01、ly-02的rabbit应用

ly-01节点操作中记录

[root@ly-01 ~]# rabbitmqctl start_app
Starting node rabbit@ly-01 ...completed with 3 plugins.
[root@ly-01 ~]

ly-02节点操作中记录

[root@ly-02 ~]# rabbitmqctl start_app
Starting node rabbit@ly-02 ...completed with 3 plugins.
[root@ly-02 ~]#

4.5. 分别登陆3个节点查看消息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从中可以看到ab队列后面+2变成了红色,鼠标指上去显示镜像无法同步ly-01和ly-02节点(Unsynchronous mirrors:rabbit@ly-01,rabbit@ly-02)。如果这时候停掉ly-03节点的服务,那么队列里面的消息将会丢失。

4.5. 消息同步

采取的解决办法是选择在ly-02节点上执行同步命令。

ly-02节点操作中记录

rabbitmqctl sync_queue ab  //同步ab队列
[root@ly-02 ~]# rabbitmqctl sync_queue ab
Synchronising queue 'ab' in vhost '/' ...
[root@ly-02 ~]# 

4.6. 分别登录3个节点查看消息状态

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同步完成后,+2又变成了蓝色。

这样,我们就测试了rabbitmq集群的破坏性测试,说明集群配置成功。

五、RabbitMQ 集群脚本

5.1. 创建host.info

#创建hosts文件
vim host.info
#添加以下内容
#格式: ip地址 用户 端口 密码
192.168.43.242 root 22 root
192.168.43.134 root 22 root
192.168.43.228 root 22 root

5.2. 编写批量执行命令脚本

#创建批量执行命令脚本文件
rabbit_cluster.sh
#添加以下内容
#!/bin/bash
COMMAND=$*
HOST_INFO=host.info
for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); doUSER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO)PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO)PASS=$(awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO)expect -c "spawn ssh -p $PORT $USER@$IPexpect {\"(yes/no)\" {send \"yes\r\"; exp_continue}\"password:\" {send \"$PASS\r\"; exp_continue}\"$USER@*\" {send \"$COMMAND\r exit\r\"; exp_continue}}"echo "---------Execute Successful! ----------"
done

5.3. 编写批量执行脚本头文件

#创建批量执行脚本头文件
batch_rabbit_cluster.sh
#添加以下内容
#/!bin/bash
/app/shell_scripts/rabbit_cluster.sh systemctl $1 rabbitmq-server.service
/app/shell_scripts/rabbit_cluster.sh systemctl status rabbitmq-server.service

5.4. bash 运行脚本

#启动RabbitMQ 服务
#格式:bash batch_rabbit_cluster.sh start/stop
bash batch_rabbit_cluster.sh start
#关闭RabbitMQ 服务
bash batch_rabbit_cluster.sh stop

注:没有没有bash权限,请采用下面方式,如果有权限,请跳过!

5.5. 赋予脚本可执行权限

chmod u+x rabbit_cluster.sh
chmod u+x batch_rabbit_cluster.sh

5.6. 运行脚本

#启动RabbitMQ 服务
#格式:./batch_rabbit_cluster.sh start/stop
./batch_rabbit_cluster.sh start
#关闭RabbitMQ 服务
./batch_rabbit_cluster.sh stop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018年9月杭州云栖大会Workshop - 基于日志的安全分析实战

基于日志的安全分析实战 背景 越来越多的企业开始重视构建基于日志的安全分析与防护系统。我们会讲述如何使用日志服务从0到1收集海量日志,并从中实时筛选、甄别出可疑操作并快速分析,进一步构建安全大盘与可视化。并通过实战方式,演练覆盖…

不服OceanBase跑分?今天起可到阿里云上一战

蚂蚁金服自研数据库OceanBase登顶TPC-C榜单的消息振奋人心,同时引起国内技术圈的广泛讨论,第一个云上跑出来的数据库分数含金量如何?其他数据库有没有可能更强? 针对这些疑惑,10月24日阿里云以一种最为直接的方式作出…

张勇:新技术是阿里“五新战略”的引擎

9月19日,云栖大会再次在杭州开幕。上千位顶级学者、行业专家,来自64个国家的CEO和CTO齐聚云栖小镇。这已经是这个盛大的年度技术大会的第十年。 阿里巴巴集团CEO张勇在主论坛致辞中表示,“阿里巴巴永远是一家技术驱动,使商业有所…

钉钉视频会议

基于 DingTalk_v5.0.0.74版本制作

图书馆管理系统怎么做_亚马逊erp管理系统有免费的吗?亚马逊erp管理系统怎么免费做...

我做跨境电商也有六年的时间了,在电商这个行业也有自己的一些经验。经验也许没有其他大卖家丰富,但会将我知道的都进行分享。如果有不懂得亚马逊问题可以我(V:772024802)。我这里给大家安排一堂直播课,可以系统的帮你解决做亚马逊…

程序员去交友网站找女友,没想到找到了这个...

1024程序员节,CSDN旗下的码书商店为程序员放个“价”(10月25日截止),全场所有书籍8折,电子产品可以拥有大额优惠券,购买前可加文末客服微信领取优惠券哦卫衣原价249元,1024活动价159元&#xff…

云栖大会 | 马云提出“新制造”战略将影响全球

9月19日,马云在“2018杭州•云栖大会”全面阐释对于新制造的思考。他表示,新制造很快会对全中国乃至全世界的制造业带来席卷性的威胁和席卷性的机会,所有的制造行业所面临的痛苦将远远超出想象,新制造为企业带来新机遇。 马云还特…

流言终结者- Flutter和RN谁才是更好的跨端开发方案?

背景 论坛上很多小伙伴关心为什么闲鱼选择了Flutter而不选择其他跨端方案?站在质量的角度,高性能是一个很重的因素,我们使用Flutter重写了宝贝详情页之后,对比了Flutter和Native详情页的性能表现,结论是中高端机型上F…

【独家揭秘】阿里怎么做双11全链路压测?| CSDN 博文精选

戳蓝字“CSDN云计算”关注我们哦!作者 | 牛兔转自 | CSDN企业博客责编 | 阿秃阿里妹导读:全链路压测是阿里的首创,我们将从工作内容、操作过程、运行总结等多个方向来介绍下阿里内部典型电商活动(如双11准备&#xff…

Centos7 使用Docker 安装Oracle 截图+关键步骤说明

yum install dockerdocker -v systemctl start docker systemctl status dockerdocker拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g#查看拉去的oracle镜像 docker images创建Oracle容器 docker run -d -p 1521:1521 --name oracle_11g registr…

阿里程序员深夜智救31楼跳楼邻居

“我妈跳楼了,快救救她!”。 8月20日凌晨的四点半左右,我被一阵急促的锤门声音吵醒。 听到这句话,没来得及思考,我就冲出了门。 我们住在31楼,出事的地点在邻居家的主卧,当时女主人整个人都悬…

数学建模亚太赛优秀论文_2019亚太地区大学生数学建模竞赛志愿者等级评定结果公布!...

2019亚太地区大学生数学建模竞赛志愿者通过赛氪官网招募,本届竞赛共招到来自193所高校的394名志愿者,根据志愿者邀请队伍数和志愿者任务的完成情况,共评选出344名志愿者,6个优秀组织社团。一路相伴,感谢有你~下面是志愿…

看完秒懂的排序算法

戳蓝字“CSDN云计算”关注我们哦!作者 | 奎哥责编 | 阿秃之前的文章咱们已经聊过了下图是常用排序算法的时间空间复杂度:排序算法这么多,这里先将排序算法做个简单分类:一、可以根据待排序的数据量规模分类:内部排序&…

手把手教你创建容器服务Kubernetes集群

Kubernetes作为目前最流行的容器编排工具,被越来越多的用户所接受,目前也有越来越多的用户开始考虑使用Kubernetes集群来部署生产应用。那么,此时用户可能面临一个问题,如何规划和创建合适的Kubernetes集群呢? 接下来的…

Navicat 12 连接oracle闪退问题

#首先查看自己oracle的版本 select * from v$version;然后去官网下载instantclient对应的版本instantclient 我的版本是instantclient-basic-windows.x64-11.2.0.4.0.zip 找到对应版本下载即可 最后解压,将解压的文件instantclient_11_2 直接放到安装Navicat的目录…

python遗传算法计算实例_遗传算法python简单例子(详解)

# -*-coding:utf-8 -*- #目标求解sin(x)最大值 import random import math import matplotlib.pyplot as plt #初始化种群 生成chromosome_length大小的population_size个个体的种群 def species_origin(population_size,chromosome_length): population[[]] #one dimension re…

四个变量的图表怎么做_品牌策划方案怎么做?5步图文帮你绘制专业策划图表...

品牌策划方案是指通过对目标对象、竞争对手等相关数据的收集及详细分析,创造性地提出的区别于其他竞争者,能够体现自身特色的名称或符号,用以识别某款产品。品牌策划方案需要策划人具备以下能力:高瞻远瞩,看得到品牌的…

阿里云开放国内首个云端数据库测试平台,云已成为数据库新标准;华为5G随行WiFi发布;科大讯飞推出 AI 专用语音芯片系列……...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

AWD-LSTM为什么这么棒?

AWD-LSTM是目前最优秀的语言模型之一。在众多的顶会论文中,对字级模型的研究都采用了AWD-LSTMs,并且它在字符级模型中的表现也同样出色。 本文回顾了论文——Regularizing and Optimizing LSTM Language Models ,在介绍AWD-LSTM模型的同时并…