RabbitMQ学习-死信队列

死信队列/延迟队列

        进入该队列的消息会被延迟消费。对于普通应用的以下场景,比如商城购物,点击支付后,监测支付状态,30分钟内未支付的系统取消订单,锁定的商品再次入库。传统方法是启动一个扫描线程,定时扫描未支付的订单,超过30分钟则进行对应的业务逻辑,使用延迟队列时,可以在用户点击支付后创建一条消息,延迟时间未30分钟,30分钟后该消息会被消费,在该消息的消费逻辑中判断用户是否已支付成功然后进行后面的逻辑处理。

主要组成部分:

  • DLX, Dead Letter Exchange,死信交换机
  • DLK, Dead Letter Routing-Key,死信路由
  • TTL, Time To Live,存活时间,

工作原理:

        可以将死信队列看作一个消息的暂存(该暂存区的消息不会被消费者获取),消息到达普通消息模型中(即普通队列的交换及和路由)后,按普通模型的流程,该消息会立即存入到指定的队列中等待消费者消费,但在死信队列模型中,该消息会进入到死信队列,该队列中的消息不会被消费者获取,消息进入死信队列后,TTL开始进行倒计时,存活时间一到,该消息则进入死信交换机,并根据路由立即被送到真正的消息队列,此时可被消费者获取并消费了。

        简单的理解,就是在普通的消费模型中,在消息进入消费队列之前,增加了一个缓存区,消息可以在这个缓存区等待一段时间,然后在进入到真正可以被消费者侦听的消息队列中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
RabbitMQ死信(Dead Letter)是指当消息无法被消费或被拒绝时,将消息发送到一个特定的队列中的机制。这个特定的队列被称为死信队列。引用中提到了Spring RabbitMQ死信机制的原理和实例,可以提供一些参考学习的价值。引用中也给出了一些应用场景,比如保证订单业务的消息数据不丢失,或者在商城中,用户下单成功但在指定时间内未支付时自动失效。而死信的来源主要有三种情况:消息的TTL过期,队列达到最大长度,消息被拒绝并且不再重新入队。可以根据这些来源来设计和应用死信机制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [RabbitMQ中的死信死信队列详解](https://blog.csdn.net/qq_41865652/article/details/123311813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Spring RabbitMQ死信机制原理实例详解](https://download.csdn.net/download/weixin_38500948/12742891)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [RabbitMQ 死信队列详解](https://blog.csdn.net/dingd1234/article/details/125024880)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值