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:

回答

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值