RabbitMQ 镜像集群之同步策略_专栏讲解

文章目录

          • 一、 基础知识汲取
            • 1.1. 镜像集群简述
            • 1.2. 策略参数说明
            • 1.3. 策略案例
          • 二、HA mode 同步方式
            • 2.1. 参数说明
            • 2.2. 案例
            • 2.3. 命令终端形式
            • 2.4. MQ管控台设置
            • 2.5. 队列同步
            • 2.5. 优缺点
          • 三、Ha async mode 同步方式(推荐使用)
            • 3.1. 参数说明
            • 3.2. 案例
            • 3.3. 命令终端形式
            • 3.4. MQ管控台设置
          • 四、ha-mode:nodes镜像到到集群中指定节点
            • 4.1. 参数说明
            • 4.2. 案例
            • 4.3. 命令终端形式
            • 4.4. MQ管控台设置
          • 五、策略区配正则
            • 5.1. 以LFY_开头的队列应用此策略
            • 5.2. 以_LOG结尾的队列应用此策略
            • 5.3. 第3种,以QUEUE_开头的队列应用此策略。但是指定同步的节点,是第2种 的演化形式

在这里插入图片描述

一、 基础知识汲取
1.1. 镜像集群简述

镜像集群模式是在RabbitMQ Cluster默认集群的基础上添加策略搭建完成的

RabbitMQ默认集群模式,并不包管队列的高可用性,尽管队列信息,交换机、绑定这些可以复制到集群里的任何一个节点,然则队列内容不会复制,固然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能守候重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,须要创建镜像队列。
跟普通集群模式不一样的是,在镜像集群模式下,你创建的 queue,无论元数据还是 queue 里的消息都会存在于多个实例上,就是说,每个 RabbitMQ 节点都有这个 queue 的一个完整镜像,包含 queue 的全部数据的意思。然后每次你写消息到 queue 的时候,都会自动把消息同步到多个实例的 queue 上。

1.2. 策略参数说明
rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]-p Vhost: 可选参数,针对指定vhost下的queue进行设置Name: policy的名称Pattern: queue的匹配模式(正则表达式)Definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-modeha-mode:指明镜像队列的模式,有效值为 all/exactly/nodesall:表示在集群中所有的节点上进行镜像exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定ha-params:ha-mode模式需要用到的参数ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manualpriority:可选参数,policy的优先级请注意一个事实,镜像配置的pattern 采用的是正则表达式匹配,也就是说会匹配一组。
1.3. 策略案例

常见的3中设置:

#格式:rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]
#第1种
rabbitmqctl set_policy policy3l "^" '{"ha-mode":"all"}'
#第2种
rabbitmqctl set_policy policy2 "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
#第3种
rabbitmqctl set_policy -p "/" policy3 "^QUEUE" '{"ha-mode":"nodes","ha-params":["rabbit@mq-002","rabbit@mq-003"],"ha-sync-mode":"automatic"}'
二、HA mode 同步方式
2.1. 参数说明

One of all (mirror to all nodes in the cluster), exactly (mirror to a set number of nodes) or nodes (mirror to an explicit list of nodes). If you choose one of the latter two, you must also set ha-params.
HA mode的值共有三个

.all:镜像同步到集群队列的所有节点
.exactly:按个数同步到集群中的一个或多个节点
. nodes:具体的节点名称
如果选择后面两个选项的的值,还需要设置ha-params参数。

2.2. 案例
所有队列设置为镜像队列,即队列会被复制到集群各个节点,
各个集群节点交换机、队列、队列内容都保持一致。
2.3. 命令终端形式
rabbitmqctl set_policy policy3l "^" '{"ha-mode":"all"}'
2.4. MQ管控台设置

在这里插入图片描述

2.5. 队列同步

集群节点宕机或停电重启后,queue-1队列需要手动同步

rabbitmqctl sync_queue queue-1  
2.5. 优缺点

自动同步交换机队列,但是集群某节点宕机或者停电,都需要手动同步,有点麻烦,万一忘了怎么办呢?对吧

三、Ha async mode 同步方式(推荐使用)
3.1. 参数说明

这个需要详细说明的,默认的情况下。当节点断线后那么这个节点就已经是落后的版本,当我们再去启动节点的时候数据我们需要去手动的同步,这自然是不好的,做到自动化是最完美的,所以设置成automatic是最佳选择

新建策略ha-all,ha-mode: all 镜像到集群中所有的节点
Pattern: ^
Apply to :Exchanges and queues
ha-mode: all //应用于所有节点
ha-sync-mode:automatic
Priority 0

3.2. 案例
所有队列设置为镜像队列,即队列会被复制到集群各个节点,
各个集群节点交换机、队列、队列内容都保持一致。
3.3. 命令终端形式
rabbitmqctl set_policy policy2 "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
3.4. MQ管控台设置

在这里插入图片描述

在这里插入图片描述
ha-all应用效果
queue-1节点后的+2表示镜像到2个节点,因为ha-mode:all,共有集群共有三个节点,+2表示将队列镜像到另外两个节点

四、ha-mode:nodes镜像到到集群中指定节点
4.1. 参数说明

新建策略policy3,
Pattern: ^QUEUE_
Apply to :queues
Definition
ha-mode: nodes
ha-params: rabbit@mq-002
rabbit@mq-003
ha-sync-mode: automatic
Priority 0

4.2. 案例
所有队列设置为镜像队列,即队列会被复制到集群指定节点,
各个集群节点交换机、队列、队列内容都保持一致。
4.3. 命令终端形式
rabbitmqctl set_policy -p "/" policy3 "^QUEUE" '{"ha-mode":"nodes","ha-params":["rabbit@mq-002","rabbit@mq-003"],"ha-sync-mode":"automatic"}'
4.4. MQ管控台设置

在这里插入图片描述

五、策略区配正则

在这里插入图片描述

5.1. 以LFY_开头的队列应用此策略

在这里插入图片描述

5.2. 以_LOG结尾的队列应用此策略

在这里插入图片描述

5.3. 第3种,以QUEUE_开头的队列应用此策略。但是指定同步的节点,是第2种 的演化形式

在这里插入图片描述

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

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

相关文章

bug要改一天?

大家应该都听过下面的一个段子~女生:亲爱的,我来亲戚了男生:多喝热水......女生:我好像要感冒了,亲爱的~男生:多喝热水......女生:我现在好难受哦,快撑不下去了男生:多喝…

新手也能看懂,消息队列其实很简单

本文内容思维导图: 消息队列其实很简单 “RabbitMQ?”“Kafka?”“RocketMQ?”...在日常学习与开发过程中,我们常常听到消息队列这个关键词。我也在我的多篇文章中提到了这个概念。可能你是熟练使用消息队列的老手&am…

如何去设计前端框架能力?星巴克消息开放项目从0到1,从点到面的思考

本文由淘宝前端工程师罗嗣分享,主要讲述了作者在星巴克消息开放项目中的总结和思考,希望对大家有帮助,让业务分享更加有价值。 从满足星巴克项目需求单点出发,发散到从点到面的思考。从而总结了自己思考的基本流程(方法…

如何在springboot中使用PageHelper分页插件

文章目录1. pom依赖2. yml3. 实体类4. mapper映射文件4. mapper接口5. service接口6. 实现类7. controller8. 浏览器验证使用思路: 1.引入myabtis和pagehelper依赖 2.yml中配置mybatis扫描和实体类 3. 这2行代码 pageNum:当前第几页 pageNum:…

6.6折票仅剩3天 | BDTC 2019全日程公布,哪些是你感兴趣的话题?

2019年12月5-7日,由中国计算机学会主办,CCF 大数据专家委员会承办,CSDN、中科天玑数据科技股份有限公司协办的中国大数据技术大会(BDTC 2019)将于北京长城饭店隆重举行。届时,超过百位顶尖技术专家将齐聚于…

java线程条件变量_使用条件变量(多线程笔记)

条件变量属性:使用条件变量可以以原子方式阻塞线程,知道某个特定条件为真为止。条件变量始终与互斥锁一起使用。使用条件变量,线程可以以原子方式阻塞,知道满足某个条件为止。对掉件的测试时在互斥锁的保护下进行的。如果条件为假…

用PyTorch创建一个图像分类器?So easy!(Part 2)

在第一部分中,我们知道了为什么以及如何加载预先训练好的神经网络,我们可以用自己的分类器代替已有神经网络的分类器。那么,在这篇文章中,我们将学习如何训练分类器。 训练分类器 首先,我们需要为分类器提供待分类的…

涨姿势,一个通信项目从开始到结束,原来还包括这些工作

戳蓝字“CSDN云计算”关注我们哦!作者 | 小枣君责编 | 阿秃本月12日,中国移动31个省的通信工程设计与可行性研究集采正式启动。这次集采规模庞大,涵盖了无线网(5G、FDD、NB等)、核心网、承载网、支撑网等专业方向,预估基本规模超4…

听说支付宝有一个“疯起来连自己都打”的项目

小蚂蚁说: 自古红蓝出CP,在蚂蚁金服就有这样两支“相爱相杀”的队伍——红军和蓝军。蓝军是进攻方,主要职责是挖掘系统的弱点并发起“真实”的攻击,俗称“找茬”;红军则是防守方,其防控体系建设中的实时核…

蚂蚁金服红蓝军技术攻防演练究竟有多“狠”

如果一个技术团队不干别的,专门“搞破坏”,这是一种怎样的存在?这真的不是“天方夜谭”,在支付宝确实有这么一支队伍——技术蓝军。蓝军的任务就是不断地攻击和进攻,而防守方则是技术红军。在支付宝,蓝军从…

阿里巴巴在内蒙古旱区试水物联网灌溉技术,一年省出1.5个西湖

阿里巴巴正用物联网技术解决干旱地区的灌溉问题,通过搭建农业物联网平台,全面监测农作物的生长状态,从而匹配最节约的灌溉方案。12月19日试验区研究人员得出预测结果:一年可以省出1.5个西湖的水。 一直以来干旱是困扰人类的重要环…

网易考拉在服务化改造方面的实践

导读: 网易考拉(以下简称考拉)是网易旗下以跨境业务为主的综合型电商,自2015年1月9日上线公测后,业务保持了高速增长,这背后离不开其技术团队的支撑。微服务化是电商IT架构演化的必然趋势,网易…

Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号

ojdbc6.jar下载 Oracle官方宣布的Oracle数据库11g的驱动jar包是ojdbc6.jar ojdbc6.jar下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html (Oracle Database 11g Release 2 (11.2.0.4) JDBC Drivers & UCP Do…

阿里重磅开源Blink:为什么我们等了这么久?

12月20日,由阿里巴巴承办的 Flink Forward China 峰会在北京国家会议中心召开,来自阿里、华为、腾讯、美团点评、滴滴、字节跳动等公司的技术专家与参会者分享了各公司基于 Flink 的应用和实践经验。 感兴趣的开发者可以看云栖社区的对于大会的主会5场分…

GAN是一种特殊的损失函数?

数据科学家Jeremy Howard在fast.ai的《生成对抗网络(GAN)》课程中曾经讲过这样一句话: “从本质上来说,生成对抗网络(GAN)是一种特殊的损失函数。” 你是否能够理解这句话的意思?读完本文&…

matlab 三维 作图 坐标轴_这张图(不全),想利用matlab画一张三维图,X Y z 轴分别为经度 纬度 频率,这...

xrangeminx:dx:maxx; yrangeminy:dy:maxy;[X,Y] meshgrid(xrange,yrange);griddata(lon,lat,SST,X,Y);mesh(X,Y,Z), hold onplot3(lon,lat,SST,o),hold offmatlab 作图方法2113:plot3 三维曲线图;plot3(x1,y1,z1,x2,y2,z2,…,xn,yn,zn): surf(x,y,z)…

(Python)零起步数学+神经网络入门

在这篇文章中,我们将在Python中从头开始了解用于构建具有各种层神经网络(完全连接,卷积等)的小型库中的机器学习和代码。最终,我们将能够写出如下内容: 假设你对神经网络已经有一定的了解,这篇文…

短视频宝贝=慢?阿里巴巴工程师这样秒开短视频

前言 随着短视频兴起,各大APP中短视频随处可见,feeds流、详情页等等。怎样让用户有一个好的视频观看体验显得越来越重要了。大部分feeds里面滑动观看视频的时候,有明显的等待感,体验不是很好。针对这个问题我们展开了一波优化&am…

Haproxy 管控台介绍

Queue 队列 简称全称说明Curcurrent queued requests当前的队列请求数量Maxmax queued requests最大的队列请求数量Limit队列限制数量 Session rate (每秒的连接回话)列表 简称全称说明scurcurrent sessions每秒的当前回话的限制数量smaxmax sessions每秒的新的最大的回话量s…

阿里云时空数据库引擎HBase Ganos上线,场景、功能、优势全解析

随着全球卫星导航定位系统、传感网、移动互联网、IoT等技术的快速发展,越来越多的终端设备连接至网络,由此产生了大规模的时空位置信息,如车辆轨迹、个人轨迹、群体活动、可穿戴设备时空位置等。这些数据具有动态变化(数据写入频繁…