RabbitMQ入门_14_Policies
参考资料:https://www.rabbitmq.com/parameters.html#policies
A. Policies 的用途
RabbitMQ 有很多可选参数(x-arguments),这些参数由客户端提供,决定是否使用各种可选特性,例如 TTL 和队列长度限制等。
由客户端设定这些参数导致对这些参数的修改需要修改代码、重部署项目、重新创建队列。同时,我们也没法给一组队列或者交换机设定相同的参数。引入 Policies 就是为了解决这些问题。
B. Policies 的范围
基本上所有的可选参数都有对应的 Policies。没在官网找到完整的 Policies 列表,但是管理插件中列出了很多 Policies:
C. 定义 Policies 的方法
目前有三种途径:
- 通过 rabbitmqctl 命令创建
- 通过 RabbitMQ REST API
- 通过管理插件
使用 rabbitmqctl 创建 Policies 命令格式如下:
```
rabbitmqctl set_policy "" '' --priority --apply-to
```
对应实例:
rabbitmqctl set_policy TTL ".*" '{"message-ttl":60000}' --apply-to queues
rabbitmqctl set_policy ha-fed "^hf\." '{"federation-upstream-set":"all","ha-mode":"all"}' --priority 1 --apply-to queues
Policy 各属性解释:
- name:名字,可以使用任意 ASCII 字符,建议不要使用空格
- pattern:用于匹配队列/交换机的正则表达式
- definition:JSON格式的一组键值对,表示设置的属性,会被注入匹配队列/交换机
- priority:优先级。一个队列/交换机只会有一个生效的 Policy,如果匹配多个 Policy,则优先级数值最大的 Policy 生效
- apply-to:该 Policy 是针对队列,还是交换机,还是同时针对两者
## D. Policies 与客户端设置的可选参数的优先性
当一个队列/交换机被客户端设置了可选参数,同时又有生效的相关 Policy 时,哪个优先呢?
对于 DLX,官方文档指明是客户端设置的可选参数覆盖 Policy;对于消息TTL、队列长度限制,官方文档未给出说明。
TODO:整理所有的 Policy 及优先性。
RabbitMQ入门_14_Policies的更多相关文章
- 2.RABBITMQ 入门 - WINDOWS - 生产和消费消息 一个完整案例
关于安装和配置,见上一篇 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置 公司有需求,要求使用winform开发这个东西(消息中间件),另外还要求开发一个日志中间件,但是也是要求 ...
- RabbitMQ入门-从HelloWorld开始
从读者的反馈谈RabbitMQ 昨天发完<RabbitMQ入门-初识RabbitMQ>,我陆陆续续收到一些反馈.鉴于部分读者希望结合实例来讲 期待下篇详细,最好结合案例.谢谢! 哪都好,唯 ...
- RabbitMQ入门-高效的Work模式
扛不住的Hello World模式 上篇<RabbitMQ入门-从HelloWorld开始>介绍了RabbitMQ中最基本的Hello World模型.正如其名,Hello World模型 ...
- RabbitMQ入门-消息订阅模式
消息派发 上篇<RabbitMQ入门-消息派发那些事儿>发布之后,收了不少反馈,其中问的最多的还是有关消息确认以及超时等场景的处理. 楼主,有遇到消费者后台进程不在,但consumer连接 ...
- RabbitMQ入门-Topic模式
上篇<RabbitMQ入门-Routing直连模式>我们介绍了可以定向发送消息,并可以根据自定义规则派发消息.看起来,这个Routing模式已经算灵活的了,但是,这还不够,我们还有更加多样 ...
- RabbitMQ入门与使用篇
介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面都非常的优秀 ...
- [转]RabbitMQ入门教程(概念,应用场景,安装,使用)
原文地址:https://www.jianshu.com/p/dae5bbed39b1 RabbitMQ 简介 RabbitMQ是一个在AMQP(Advanced Message Queuing Pr ...
- RabbitMQ 入门指南——安装
RabbitMQ好文 Rabbitmq Java Client Api详解 tohxyblog-博客园-rabbitMQ教程系列 robertohuang-CSDN-rabbitMQ教程系列 Rabb ...
- RabbitMQ入门:总结
随着上一篇博文的发布,RabbitMQ的基础内容我也学习完了,RabbitMQ入门系列的博客跟着收官了,以后有机会的话再写一些在实战中的应用分享,多谢大家一直以来的支持和认可. RabbitMQ入门系 ...
随机推荐
- matlab 怎么建立结构体数组?
https://zhidao.baidu.com/question/537198107.html 怎么定义一个结构体数组,使数组的每个元素是一个结构体变量.像这样:a=(1,2)a(1)=struct ...
- windows上mysql的配置文件my.ini内容
# Other default tuning values# MySQL Server Instance Configuration File# --------------------------- ...
- Excel导出插件-VSTO
前言 一个游戏通常需要10多个Excel表格或者更多来配置,一般会通过导出csv格式读取配置. 本文提供导出Excel直接生成c#文件,对应数据直接生成结构体和数组,方便开发排错和简化重复写每个表格的 ...
- Linux服务器---安装bind
安装bind 1.安装bind软件,需要安装3 个bind.bind-chroot.bind-util [root@localhost pub]# yum install -y bind bind-c ...
- Core Java 2
p267~p270: 1.一个方法不仅需要告诉编译器将要返回什么值, 还要告诉编译器有可能发生什么错误(以便在错误发生时用妥善的方式处理错误). 2.方法应该在首部声明所有可能抛出的异常. 3.方法抛 ...
- 通过一个例子了解Ajax
Ajax指的Asyncronous JavaScript and XML Ajax并不是什么新的编程语言, 它是现有一些东西的应用.从它的名称中就可以看出来 假如我们设想, 浏览器展示了一个页面,但需 ...
- 微信小程序开发环境
微信小程序开发环境 不忘初心,方得始终.初心易得,始终难守 小程序开发环境 开发工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devt ...
- cmder的使用和编码问题解决
cmder 是一款 windows 下的命令集合软件,它可以集合各种系统下的命令,并且操作非常快速方便.安装有两个版本,一个是简化版(4.27M),一个是完全版(75.7M),它们的唯一区别:完全版包 ...
- 论文笔记:Mastering the game of Go with deep neural networks and tree search
Mastering the game of Go with deep neural networks and tree search Nature 2015 这是本人论文笔记系列第二篇 Nature ...
- Hive创建内部表、外部表
使用hive需要hive环境 启动Hive 进入HIVE_HOME/bin,启动hive ./hive 内部表 建表 hive> create table fz > (id int,nam ...