消息队列常见面试题:聊聊消息队列中的死信队列及应用场景

面试题 潘老师 10个月前 (06-16) 73 ℃ (0) 扫码查看

大家好!今天咱们来聊聊消息队列中的死信队列及其应用场景。之前我们提到消息队列的消息积压问题,可以从生产端和消费端进行优化处理,比如生产端做好限流,消费端弹性扩容、优化存储策略。有同学在评论区提出能否用消息队列的死信队列来解决消息积压,这确实是个好想法。

说到死信队列,可能大家不太熟悉,平时用得也不多。咱们先来讲讲它的基础概念,死信其实就是无法被消费的消息,比如消息过期了,就会从原队列删除并转到死信队列,然后通过消费端来处理这些消息,这就是死信队列的原理。

针对消息积压的场景,使用死信队列时要先设置消息的过期时间,比如设为 1 分钟,1 分钟过后,这些消息自动转移到死信队列,不会长时间留在业务队列中,这样就能避免消息积压,而且过期消息也没丢,进入死信队列继续被消费,相当于多了个分压队列,所以配置死信队列可以解决消息积压的问题。

除了解决消息积压,死信队列还能处理延迟消息。比如用户下单但未付款,常规思路是设置定时任务轮巡检查超时未支付的订单,但效率不高,尤其数据库订单数据多时可能有问题。这时如果用死信队列,用户下单后发送一条验证消息,设置 15 分钟过期,时间到了就自动进入死信队列,消费端再检查未支付订单。

好啦,今天关于死信队列的内容就讲到这儿,如果大家还知道死信队列的其他应用场景,欢迎在评论区补充。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/ms/13051.html
喜欢 (1)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】