当前位置: 首页 > article >正文

RabbitMQ中的死信交换机?(RabbitMQ延迟队列有了解过吗)

延迟队列

延迟队列:进入队列的消息会被延迟消费的队列。

延迟队列=死信交换机 + TTL(过期时间)

延迟队列的使用场景:超时订单、限时优惠、定时发布

死信交换机 

当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter):

  • 消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue参数设置为false
  • 队列中的消息是一个过期消息,超时未消费
  • 要投递的队列消息堆积满了,最早的消息可能成为死信

如果该队列配置了dead-letter-exchange属性 去 指定了一个交换机,那么队列中的死信就会投递到这个交换机中,而这个接收死信的交换机称为死信交换机(Dead Letter Exchange,简称DLX),最后把死信交换机当成正常的交换机用就可以了。

TTL

TTL,也就是Time-To-Live。如果一个队列中的消息TTL结束仍未消费,则会变为死信,ttl超时分为两种情况:

  • 消息所在的队列设置了存活时间
  • 消息本身设置了存活时间
  • 当以上两个都设置了,则哪个的TTL短就用哪个

延迟队列插件

安装这个插件,实现延迟队列就很容易:

在声明交换机的时候,添加delayed = "true",然后它就是可以实现延迟队列的交换机了:

发消息的时候设置消息的TTL:

回答


http://www.kler.cn/a/280330.html

相关文章:

  • 中庸就是五五开,各打五十大板吗
  • 8.28-回顾+容器与主机之间的通信+跨主机容器之间的通信
  • 如何监控Eureka集群:Prometheus与Grafana的监控集成
  • 音频分割软件有什么?最方便的音频分割软件分享给你
  • client网络模块的开发和client与server端的部分联动调试
  • FPGA工程师成长路线(持续更新ing,欢迎补充)
  • Ps:首选项 - 常规
  • golang-gin使用中间件处理文本-时间字符串格式
  • 解决 VMware 中 Ubuntu文件系统磁盘空间不足
  • 二十九、channel的select
  • 如何设置Winfrom中dataGridView中的内容换行并行高自适应
  • 不会PS怎么快速抠图?试试这3种方法,抠图干净又高效!
  • VSCode插件
  • 简单实现进度条效果(vue2)
  • 2024了,Neo4j能显示节点图片吗?
  • 【架构-24】XML和JSON
  • 文心快码帮你解大厂面试题:TCP关闭连接的过程,为什么要4次挥手,为什么最大等待时间是2*MSL?
  • 【论文阅读】ColabFold: making protein folding accessible to all
  • iPhone不停重启怎么办?全面解析与解决方案
  • 对数据处理过程中,缺失值和异常值应该怎么处理?