You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RabbitMQ:队列消息TTL与生产者单条消息TTL,哪个优先级更高?

消息TTL的判定结果

该消息的TTL是30000毫秒。

在RabbitMQ的机制中,消息级别的过期设置优先级高于队列级别的过期设置:

  • 当队列通过x-message-ttl参数设置了默认消息TTL,同时发送的消息自身通过Expiration属性指定了过期时间时,会以消息自身的设置为准。

结合你的代码来看:

  1. 队列声明代码:
var args = new Dictionary<string, object>();
args.Add("x-message-ttl", 60000);
model.QueueDeclare("myqueue", false, false, false, args);

这里给队列设置了默认的消息TTL为60000毫秒。

  1. 消息发送代码:
byte[] messageBodyBytes = System.Text.Encoding.UTF8.GetBytes("Hello, world!");

IBasicProperties props = model.CreateBasicProperties();
props.ContentType = "text/plain";
props.DeliveryMode = 2;
props.Expiration = "30000";

model.BasicPublish(exchangeName,
                   routingKey, props,
                   messageBodyBytes);

这里给这条消息单独指定了Expiration为30000毫秒,这个值会覆盖队列的默认设置,所以该消息的实际TTL是30000毫秒。

内容的提问来源于stack exchange,提问作者Pea Kay See Es

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:05:02