RabbitMQ 延迟队列、惰性队列 简介

这篇比较简单,基础内容前两篇已经说过了,可以看以前的:

  1. Springboot RabbitMQ 基础使用、消息发送确认、签收
  2. springboot、rabbitMQ 死信队列

延迟队列

使用场景:

  • 订单十分钟内未支付则自动取消:下单发送消息 TTL 十分钟,自动转入死信队列 DLX(消费取消订单)
  • 用户发起退款,如果三天内没有得到处理则通知相关运营人员:发送退款请求消息 TTL 3天,还没消费转入死信队列(人工接入)

类似场景还蛮多的。

基于死信实现

基础的延迟队列就不写了,和死信队列一样。实现原理也很简单,消息 TTL 实现延迟。

上面讲 TTL 时,尽量使用 消息TTL。相对于 队列TTL,消息的TTL 更加灵活。

但是在延迟队列情况下,消息TTL 的过期判断是在即将投递到消费者才判断的,如果消息积压严重,那么即时已经过期的消息,也会

你可能感兴趣的:(#,中间件,rabbitmq,java,spring,boot)