RabbitMQ设置死信队列

本文介绍了RabbitMQ中死信队列的设置,包括消息变为死信的条件,如被拒、过期或队列长度超出限制。通过设置队列属性,如消息存活时间(TTL)为30秒,以及指定死信交换机和路由键,可以有效地管理和处理RabbitMQ中的死信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习死信队列,首先要理解死信产生的原因或条件:

  1. 消息被拒 ( basic.reject or basic.nack ) 并且没有重新入队 ( requeue=false );

  2. 消息在队列中过期,即当前消息在队列中的存活时间已经超过了预先设置的TTL ( Time To Live ) 时间;

  3. 当前队列中的消息数量已经超过最大长度。


一旦消息变成了死信,那么消息就会被送至死信交换机,再路由至死信队列。


Map<String, Object> argMap = new HashMap<>();
argMap.put("x-message-ttl", 30 * 1000); // 设置队列里消息的ttl的时间30s
argMap.put("x-dead-letter-exchange", dlxExchangeName); // 给队列设置死信交换机

设置队列是属性,①:队列中消息的过期时间是 30 秒 ②:队列产生的死信将会被转发至dlxExchangeName交换机。

argMap.put("x-dead-letter-routing-key", "some-routing-key");

也可以指定死信路由的键。(若不指定,则使用原队列的routingKey

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值