这篇比较简单,基础内容前两篇已经说过了,可以看以前的:
延迟队列
使用场景:
- 订单十分钟内未支付则自动取消:下单发送消息 TTL 十分钟,自动转入死信队列 DLX(消费取消订单)
- 用户发起退款,如果三天内没有得到处理则通知相关运营人员:发送退款请求消息 TTL 3天,还没消费转入死信队列(人工接入)
类似场景还蛮多的。
基于死信实现
基础的延迟队列就不写了,和死信队列一样。实现原理也很简单,消息 TTL 实现延迟。
上面讲 TTL 时,尽量使用 消息TTL。相对于 队列TTL,消息的TTL 更加灵活。
但是在延迟队列情况下,消息TTL 的过期判断是在即将投递到消费者才判断的,如果消息积压严重,那么即时已经过期的消息,也会