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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值