0


rabbitmq镜像模式

rabbitmq集群模式分为两种:普通模式和镜像模式
如果不设置集群模式则为普通模式,下面是将集群修改为镜像模式

镜像集群

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

普通集群下,从节点无法复制队列数据,虽然可以从slave节点看到queue;

策略参数

rabbitmqctl set_policy [-p <vhost>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern>  <definition>

参数说明:

  • -p vhost : 可选,针对指定vhost下的queue进行镜像
  • name:策略名称(自定义)
  • pattern:queue的匹配模式(正则),对匹配到的queue进行镜像
  • definition:镜像定义,主要包括三部分:ha-mode,ha-params,ha-sync-mode 1. ha-mode:指明镜像队列的模式,有效值为 all/exactly/nodes - all:表示在集群中所有的节点上进行镜像 - exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定 - nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定 2. ha-params:ha-mode模式需要用到的参数 3. ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
  • priority:可选参数,policy的优先级(当有多个策略作用时,该策略的优先级)

查看策略

rabbitmqctl list_policies

如果没有策略则为

Listing policies for vhost "/" ...

添加策略

现添加一个策略:

  • 在集群中所有的节点上进行镜像, ha-mode: all
  • 只对 hello 开头的队列做镜像, ‘^hello’
  • 队列中消息的同步方式为自动,ha-sync-mode: automatic
rabbitmqctl set_policy ha-all '^hello' '{"ha-mode":"all","ha-sync-mode":"automatic"}' 
// 说明:策略正则表达式为 “^” 表示匹配所有队列名称  “^hello”:匹配hello开头队列

此时页面上可以看到该策略
在这里插入图片描述

删除策略

rabbitmqctl clear_policy ha-all

修改节点类型

节点类型有两种:内存节点和磁盘节点
ram为内存节点;
disc为磁盘节点

rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app
标签: rabbitmq

本文转载自: https://blog.csdn.net/u010833154/article/details/128483642
版权归原作者 love_燕子 所有, 如有侵权,请联系我们删除。

“rabbitmq镜像模式”的评论:

还没有评论