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种 的演化形式
RabbitMQ 镜像集群之同步策略_专栏讲解相关推荐
- RabbitMQ镜像集群与ShovelFederation跨集群数据同步
部署环境与版本 安装包下载地址: Erlang语言依赖下载链接:http://erlang.org/download/otp_src_21.1.tar.gz RabbitMQ 3.7.8版本下载链接: ...
- RabbitMQ 镜像集群队列_集群高可用篇_03
文章目录 一.普通集群搭建 1. 停止 全部 MQ服务节点 2. 文件(.erlang.cookie)同步 3. 组成集群操作 3. slave 加入集群操作 4. 查看集群状态 5. 访问管控台界面 ...
- 从零开始构建一个高可靠的RabbitMQ镜像集群
从零开始构建一个高可靠的RabbitMQ镜像集群 1.集群环境节点规划如表所示: 1 集群构建 1.停止MQ服务,首先停止3个节点的服务的命令如下: service rabbitmq-server s ...
- RabbitMQ 镜像集群配置_05
接上一篇:(企业级) RabbitMQ 普通集群配置_04 文章目录 一.RabbitMQ 策略实战 1. 创建RabbitMQ 策略 2. ly-01节点查看创建RabbitMQ 策略 3. 登录l ...
- haproxy+rabbitmq镜像集群
HAProxy简介 (1)HAProxy 是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProxy特 ...
- rabbitmq镜像集群搭建
1.安装运行环境 a.curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo ...
- 使用 C# sdk 连接 高可用的 rabbitmq 镜像集群
我们知道rabbitmq是一个专业的MQ产品,而且它也是一个严格遵守AMQP协议的玩意,但是要想高端大气上档次,一定需要拿出高可用的东西出来,这不本篇就跟大家说一下cluster的概念,rabbitm ...
- ①RabbitMQ 消息中间件/消息队列、单节点、集群、镜像集群
文章目录 RabbitMQ 消息中间件/消息队列 1.消息中间件 1.简介 2.作用 消息中间件的两种模式 P2P模式 Rabbitmq Pub/Sub模式(发布/订阅:Topic,可以重复消费) K ...
- RabbitMQ+haproxy+keeplived 高可用负载均衡高可用镜像集群队列_01
文章目录 一.RabbitMQ 集群节点说明 二.服务器hosts文件统一修改 三.RabbitMQ 镜像集群队列搭建部署 一.RabbitMQ 集群节点说明 服务器IP hostname 节点说明 ...
最新文章
- chrome插件网站
- linux module原理,NodeJS的模块原理
- mysql聚合函数rollup和cube
- c语言语音控制游戏文献,C语言课程设计-基于C语言推箱子游戏设计-毕业论文文献.doc...
- 华为高管涉嫌受贿已被带走调查
- 多字节常量char m='\abcd'
- 米思齐Mixly图形化编程---RFID智能门禁
- 在线生成app icon图标
- 美国电话卡原生卡和虚商卡区别
- 解压缩软件:WinRAR V5.71
- 熊乃学 计算机,吴谋博士研究成果在权威期刊在线发表
- kali获取同局域网设备的图片信息
- java catch中throw_Java的catch块中throw e和throw new Exception(e)有什么区别?
- Error: L6218E: Undefined symbol LED_Init (referred from main.o).
- java 创建word文件_java基于feemarker 生成word文档(超级简单)
- c语言:“有一个已排好序的数组,要求输入一个数后,按原来的规律将它插入数组中” 的程序分析及详细代码
- 软件需求说明及对应的测试用例,测试用例与需求的对应关系 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- C++11之正则表达式(regex_match、regex_search、regex_replace)
- 对Slim 框架进行总结 一
- C语言结构体——位段概念的讲解