死信队列和延时队列

死信队列
1.概念

DLX,全称为Dead-Letter-Exchange,可以称之为死信交换器,也有人称之为死信邮箱。当消息在一个队列中变成死信(dead message)之后,它能被重新被发送到另一个交换器中,这个交换器就是 DLX,绑定 DLX 的队列就称之为死信队列。

2.产生死信队列的原因

在这里插入图片描述

  1. 消息被拒绝(basic.reject或basic.nack)并且requeue=false.
  2. 消息TTL过期,即当前消息在队列中的存活时间已经超过了预先设置的TTL
  3. 队列达到最大长度(队列满了,无法再添加数据到mq中)
channel.exchangeDeclare("dlx_exchange","direct"); // 创建 DLX: dlx_exchange
Map<String, Object> map = new HashMap<String , Object>();
map.put ("x-dead-letter-exchange" ,"dlx_exchange");
// 为队列 myqueue 添加 DLX
channel.queueDeclare("myqueue", false, false, false, map);
  1. 设置TTL队列,需要在创建队列的时候,设置上一个属性 x-message-ttl
  2. 设置方式:map.put("x-message-ttl", 10000);
小结
  1. 核心代码:map.put("x-dead-letter-exchange", EXCHANGE_NAME_DLX); 一定要设置 ttl 队列的死信属性
  2. 死信队列就是一个普通的队列
  3. 应用场景:消息的延迟发送,定时关闭订单等。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值