rabbitmq应用--死信队列

本文介绍了RabbitMQ的死信队列机制,包括消息变为死信的三种情况,以及死信队列的应用场景,如关闭未支付订单、释放资源等。此外,还详细展示了如何配置死信队列,包括创建Exchange、Queue和Binding的代码示例。
摘要由CSDN通过智能技术生成

一. rabbitmq死信队列


  死信(dead letter)是Rabbitmq的一种消息机制,当消息没有及时消费时,消息就变成死信。出现消息没有消费的情况如下:
  1.消息被否定确认,使用 channel.basicNack 或 channel.basicReject ,并且此时requeue 属性被设置为false;
  2.消息在队列的存活时间超过设置的TTL时间;
  3.消息队列的消息数量已经超过最大队列长度。
   
  死信消息会被RabbitMQ进行特殊处理,如果配置了死信队列信息,那么该消息将会被丢进死信队列中,如果没有配置,则该消息将会被丢弃。
  生产者-->发送消息-->业务交换机-->业务队列(配置死信队列信息)-->DLX交换机-->死信队列-->监听-->消费者
  
  TTL是time to live 的简称,顾名思义指的是消息的存活时间

二. 应用场景


   1.电商业务中关闭指定时间未支付的订单,比如关闭购物车中30分钟未支付订单
   2.检查用户指定时间内需要释放的资源,比如释放用户只能占用1分钟的服务器资源。
   3.在较为重要的业务队列中,确保未被正确消费的消息不被丢弃,通过配置死信队列,可以让未正确处理的消息暂存到另一个队列中,待后续排查清楚问题
   
   在高并发场景下,rabbitmq死信策略比定时任务更好用,减少对服务器资源的消耗,可以分布式处理问题。

 

三.如何配置死信队列

 

@Bean
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值