RabbitMQ学习(十二): 队列和消息的有效期 (Queue and Message TTL)

说明

在之前的一篇博文《springboot学习(十三):RabbitMQ的使用 实现消息延迟消费》中,我使用RabbitMQ来达到失败消息的延迟重试的目的。其中就使用了消息的TTL和 死信交换机( Dead Letter Exchanges)。本篇博文我将继续翻译学习官方文档中对消息和队列的TTL的相关详解,通过本文我们将了解消息的TTL和队列的TTL,在设置时的差别等等内容。

正文

概述

RabbitMQ允许你为消息和队列设置有效期TTL(time to live),可以在队列声明时使用可选参数设置,也可以使用policies命令设置。官方推荐使用后者进行设置。

消息的TTL可以应用于一个队列,一组队列又或者针对每个消息进行设置。


基于队列的消息TTL

为一个队列设置消息的TTL,可以通过命令指定policy的message-ttl参数值,或者在队列声明时,指定相同名称的参数值。

当队列中的消息存留时间超过了配置的生存时间(TTL),则称该消息已死亡。注意,同一个消息被路由到不同的队列将拥有不同的过期时间,又或者永远不会过期。这取决于消息所存在的队列。一个队列中的死亡消息不会影响到其他队列中与之相同消息的生命周期。

服务器能保证在使用basic.deliver(推模式)或basic.get-ok(拉模式)的方式获取消息时,死亡消息将不会被传递给消费者。而且,服务器将尝试在消息过期时或之后将其删除。

不管是声明队列时设置的T

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值