首页 > 其他 > 详细

RabbitMQ - [高级] 延迟队列

时间:2021-07-11 17:50:25      阅读:20      评论:0      收藏:0      [点我收藏+]

一、延迟队列概念

技术分享图片

 

二、延迟队列使用场景

技术分享图片

 

 

技术分享图片

 

 

 

三、RabbitMQ 中的 TTL 

TTL 是什么呢? TTL 是 RabbitMQ 中一个消息或者队列的属性,表明一条消息或者该队列中的所有 消息的最大存活时间,单位是毫秒。

换句话说,如果一条消息设置了 TTL 属性或者进入了设置TTL 属性的队列,那么这 条消息如果在TTL 设置的时间内没有被消费,则会成为"死信"。如果同时配置了队列的TTL 和消息的 TTL,那么较小的那个值将会被使用,有两种方式设置 TTL。

 

 

3.1 队列设置TTL

技术分享图片

 

 

3.2 消息设置TTL

技术分享图片

 

3.3 两者的区别

  • 如果设置了队列的 TTL 属性,那么一旦消息过期,就会被队列丢弃(如果配置了死信队列被丢到死信队 列中)。
  • 如果设置了消息的 TTL 属性,消息即使过期,也不一定会被马上丢弃,因为消息是否过期是在即将投递到消费者之前判定的,如果当前队列有严重的消息积压情况,则已过期的消息也许还能存活较长时间。
  • 如果不设置 TTL,表示消息永远不会过期。
  • 如果将 TTL 设置为 0,则表示除非此时可以 直接投递该消息到消费者,否则该消息将会被丢弃。

 

RabbitMQ - [高级] 延迟队列

原文:https://www.cnblogs.com/frankcui/p/14998560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!