栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

死信队列和延时队列

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

死信队列和延时队列

死信队列 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 map = new HashMap();
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. 应用场景:消息的延迟发送,定时关闭订单等。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号