Rabbitmq集群镜像模式设置Policy策略

设置 Policy 策略

在 RabbitMQ 中,可以使用 rabbitmqctl set_policy 命令来设置一个 Policy。命令格式如下:

1

rabbitmqctl set_policy [-p vhost] [--priority priority] [--apply-to apply-to] {name} {pattern} {definition}

其中的参数含义如下:

  • -p:指定虚拟机,如:/

  • --priority:指定优先级

  • --apply-to:指定该 Policy 的应用范围,如:同时应用到交换器和队列

  • name:指定 Policy 的名称

  • pattern:指定 Policy 匹配交换器或队列的正则表达式,如:^policy.+

  • definition:指定属性,如:message-ttl 等

示例:设置默认虚拟机(vhost)中所有以 “policy” 开头的队列的策略。其中,Policy 优先级为1,仅仅应用到队列,匹配模式为“^policy.+”,且消息的 ttl 为 3 秒。如下:

1

2

C:\Users\Administrator> rabbitmqctl set_policy --apply-to queues --priority 1 myPolicy "^policy.+" "{\"message-ttl\":3000}"

Setting policy "myPolicy" for pattern "^policy.+" to "{"message-ttl":3000}" with priority "1" for vhost "/" ...

列举 Policy 策略

在 RabbitMQ 中,可以使用 rabbitmqctl list_policies 命令列出默认虚拟机中所有的 Policy。命令格式:

1

rabbitmqctl list_policies [-p vhost]

示例

(1)列出默认虚拟机中所有的 Policy

1

2

3

4

5

C:\Users\Administrator> rabbitmqctl list_policies

Listing policies for vhost "/" ...

vhost   name    pattern apply-to        definition      priority

/       myPolicy        ^policy.+       queues  {"message-ttl":3000}    1

/       test-policy     ^policy.+       queues  {"message-ttl":3000}    1

(2)列出 vhost1 虚拟机中所有的 Policy

1

2

3

4

 C:\Users\Administrator> rabbitmqctl list_policies -p vhost1

Listing policies for vhost "vhost1" ...

vhost   name    pattern apply-to        definition      priority

vhost1  policyDemo      ^policy.+       queues  {"message-ttl":3000}    1 

清除 Policy 策略

在 RabbitMQ 中,可以使用 rabbitmqctl clear_policy 命令清除指定的 Policy。命令格式:

1

rabbitmqctl clear_policy [-p vhost] {name}

其中,name 表示 Policy 名称。

示例:删除默认虚拟机中名为 myPolicy 的 Policy 策略。命令如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

# 列出默认虚拟机下所有 Policy

C:\Users\Administrator> rabbitmqctl list_policies

Listing policies for vhost "/" ...

vhost   name    pattern apply-to        definition      priority

/       myPolicy        ^policy.+       queues  {"message-ttl":3000}    1

/       test-policy     ^policy.+       queues  {"message-ttl":3000}    1

# 清理名为 myPolicy 的 Policy

C:\Users\Administrator> rabbitmqctl clear_policy myPolicy

Clearing policy "myPolicy" on vhost "/" ...

# 列出默认虚拟机下所有 Policy

C:\Users\Administrator> rabbitmqctl list_policies

Listing policies for vhost "/" ...

vhost   name    pattern apply-to        definition      priority

/       test-policy     ^policy.+       queues  {"message-ttl":3000}    1

如果有两个或多个 Policy 都作用到同一个交换器或者队列上,且这些 Policy 的优先级都是一样的,则参数项最多的 Policy 优先。如果参数一样多,则最后添加的 Policy 优先。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值