RabbitMQ-延迟队列

简介

延迟队列存储的对象是对应的延迟消息;所谓“延迟消息”是指当消息被发送后,并不想让消费者立刻拿到消息,而是等待特定时间后,消费者才能拿到这个消息进行消费。

在RabbitMQ中延迟队列可以通过 过期时间+死信队列 来实现;

流程

具体流程图所示:

延迟队列

在上图中:分别设置了两个5秒、10秒的过期队列,然后等到时间到了则会自动将这些消息转移投递到对应的死信队列中,然后消费者再从这些死信队列接收消息就可以实现消息的延迟接收。

具体过程如过期时间进入死信队列。

应用场景

延迟队列的应用场景:如:

  • 在电商项目中的支付场景;如果在用户下单之后的十几分钟内没有支付成功;那么这个支付的订单算是支付失败,要进行支付失败的异常处理(将库存加回去),这时候可以通过使用延迟队列来处理。
  • 在系统中如果需要在指定的某个时间之后执行的任务都可以通过延迟队列处理。

最后更新: 2020年08月22日 15:45

原始链接: http://ligangit.com/2020/08/22/RabbitMQ-延迟队列/

× 请我吃糖~
打赏二维码