关于RabbitMQ Queue Argument的简介
1.Message TTL
message在队列queue中可以存活多长时间,以毫秒为单位;发布的消息在queue时间超过了你设定的时间就会被删除掉。
channel.queueDeclare("test", true, false, false, new HashMap<String, Object>());
2.Auto expire
auto expire 设置当前的queue在指定的时间内,没有consumer、basic.get也就是未被访问,就会被删除。
3.MaxLength与MaxLength bytes
Max Length(x-max-length): 限定队列的消息的最大值长度,超过指定长度将会把最早的几条删除掉, 类似于mongodb中的固定集合,例如保存最新的100条消息, Feature=Lim
Max Length Bytes(x-max-length-bytes): 限定队列最大占用的空间大小, 一般受限于内存、磁盘的大小, Features=Lim B
Dead letter exchange(x-dead-letter-exchange): 当队列消息长度大于最大长度、或者过期的等,将从队列中删除的消息推送到指定的交换机中去而不是丢弃掉,Features=DLX
4.dead letter exchange与dead letter routingkey
就像上面的messagettl,maxlength等。消息因为超时或超过限制在队列里消失,这样我们就丢失了一些消息,也许里面就有一些是我们做需要获知的。而rabbitmq的死信功能则为我们带来了解决方案。设置了dead letter exchange与dead letter routingkey(要么都设定,要么都不设定)那些因为超时或超出限制而被删除的消息会被推动到我们设置的exchange中,再根据routingkey推到queue中
Dead letter exchange(x-dead-letter-exchange): 当队列消息长度大于最大长度、或者过期的等,将从队列中删除的消息推送到指定的交换机中去而不是丢弃掉,Features=DLX
Dead letter routing key(x-dead-letter-routing-key):将删除的消息推送到指定交换机的指定路由键的队列中去, Feature=DLK
5.Lazy Queue
lazy queue是在3.6.0版本被引入的,lazy queue的信息尽可能的都保存在磁盘上,仅在消费者请求的时候才会加载到RAM中。
使用默认的queue,并且消息不持久化的话,都是放在RAM中的。当消息峰值的时候,大量的消息在RAM导致rabbitmq服务器压力过大,当RAM使用量到一定数字的时候就会因为压力把数据移到硬盘中,但是不要嗨皮,rabbitmq服务器重启后消息一样会丢失。而且过大的压力可能会出现各种各样的异常情况,这并不是我们想要看到的。
6.Master locator(x-queue-master-locator)
最新文章
- css 文字超出部分显示省略号(原)
- SQL Server快捷键
- FineReport如何连接和使用MongoDB数据库
- OSG的节点访问
- pager分页框架体会
- 最小二乘拟合(转)good
- oracle 表复制
- JavaWeb(二)会话管理之细说cookie与session
- vue打包后不使用服务器直接访问方法
- BFPRT算法
- HttpUtility.UrlEncode()关于空格的编码问题
- 51nod 1387 移数字
- 基于C++的成功-失败法演示
- [R] [Johns Hopkins] R Programming -- week 3
- Ubuntu18.04安装Guake下拉式终端
- 安装win7出现安装程序无法创建新的系统分区
- 怎样让DBGrid在按住Shift点鼠标的同时能将连续范围的多行选中?
- UGUI之Scrollbar使用
- c#关于字符串格式化
- 初步了解hg19注释文件的内容 | gtf
热门文章
- leetcode46. Permutations 、47. Permutations II、 剑指offer字符串的排列
- vue v-for 遍历循环时的key值的报错
- 深入浅出的webpack4构建工具---webpack+vue+router 按需加载页面(十五)
- PAT A1147 Heaps (30 分)——完全二叉树,层序遍历,后序遍历
- springadmin环境搭建
- linux中断源码分析 - 中断发生(三)
- CF1110E Magic Stones 差分
- 对int array进行排序
- 初始化应用程序数据ng-init指令
- 一个有趣的问题——HTTP是“超文本传输协议”还是“超文本转移协议”