RabbitMQ实现延迟队列一:在队列上设置TTL

Publish --> delaysync.exchange --> delay.5m.queue(延迟队列) --> delay.exchange --> test.queue(正常队列) --> Consumer

//延迟队列start
Map<String,Object> map = new HashMap<String,Object>();
map.put("x-message-ttl", 10000);//消息过期时间
map.put("x-max-length", 500000);//最大积压的消息个数
map.put("x-dead-letter-exchange", "delay.exchange");//消息过期后会投递到delay.exchange
channel.queueDeclare("delay.5m.queue", true, false, false, map);

RabbitMQ实现延迟队列二:在消息上设置TTL

Publish --> default exchange --> delay_queue(延迟队列) --> amq.direct --> message_ttl_queue(正常队列) --> Consumer

队列:

//延迟队列
Map<String,Object> arguments = new HashMap<String,Object>();
arguments.put("x-dead-letter-exchange", "amq.direct");//消息过期后会投递到amq.direct
arguments.put("x-dead-letter-routing-key", "message_ttl_routingKey");//出现dead letter之后将重新按照指定的routing-key发送
channel.queueDeclare("delay_queue", true, false, false, arguments);

消息发送:

//设置延迟属性
AMQP.BasicProperties.Builder builder = new AMQP.BasicProperties.Builder();
//deliveryMode:将消息标记为持久(值为2)或瞬态(任何其他值)
AMQP.BasicProperties properties = builder.expiration("10000").deliveryMode(2).build();
channel.basicPublish("", "delay_queue", properties, msg.getBytes());

转载于:https://www.cnblogs.com/yifanSJ/p/9007409.html

RabbitMQ —— 延迟队列相关推荐

  1. RabbitMQ 延迟队列实现定时任务的正确姿势,你学会了么?

    以下文章来源方志朋的博客,回复"666"获面试宝典 场景 开发中经常需要用到定时任务,对于商城来说,定时任务尤其多,比如优惠券定时过期.订单定时关闭.微信支付2小时未支付关闭订单等 ...

  2. rabbitmq 延迟队列_Delayed Message 插件实现 RabbitMQ 延迟队列

    延迟队列是为了存放那些延迟执行的消息,待消息过期之后消费端从队列里拿出来执行. DLX + TTL 方式存在的时序问题 对于延迟队列不管是 AMQP 协议或者 RabbitMQ 本身是不支持的,之前有 ...

  3. Delayed Message 插件实现 RabbitMQ 延迟队列

    延迟队列是为了存放那些延迟执行的消息,待消息过期之后消费端从队列里拿出来执行. DLX + TTL 方式存在的时序问题 对于延迟队列不管是 AMQP 协议或者 RabbitMQ 本身是不支持的,之前有 ...

  4. RabbitMQ 延迟队列-对于入门来说可以快速上手

    RabbitMQ 延迟队列-非常非常实用 RabbitMQ 延迟队列-非常非常实用 一.使用场景 二.消息延迟推送的实现 三.项目具体实现 RabbitMQ 延迟队列-非常非常实用 一.使用场景 ​ ...

  5. 谷粒商城笔记+踩坑(22)——库存自动解锁。RabbitMQ延迟队列

    导航: 谷粒商城笔记+踩坑汇总篇 目录 1 业务流程,订单失败后自动回滚解锁库存 可靠消息+最终一致性方案 2[仓库服务]RabbitMQ环境准备 2.1 导入依赖 2.2 yml配置RabbitMQ ...

  6. RabbitMQ 延迟队列,太实用了!

    点击关注公众号,Java干货及时送达 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货.在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付 ...

  7. RabbitMQ(九):RabbitMQ 延迟队列,消息延迟推送(Spring boot 版)

    应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货.在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持 ...

  8. C#实现rabbitmq 延迟队列功能

    最近在研究rabbitmq,项目中有这样一个场景:在用户要支付订单的时候,如果超过30分钟未支付,会把订单关掉.当然我们可以做一个定时任务,每个一段时间来扫描未支付的订单,如果该订单超过支付时间就关闭 ...

  9. SpringBoot RabbitMQ 延迟队列代码实现

    场景 用户下单后,如果30min未支付,则删除该订单,这时候就要可以用延迟队列 准备 利用rabbitmq_delayed_message_exchange插件: 首先下载该插件:https://ww ...

最新文章

  1. HTML5 处理响应式图片
  2. java 缓存的简单实现_Java8简单的本地缓存实现
  3. C语言入门题-计算指数 (15分)
  4. 习题2.4 递增的整数序列链表的插入(15 分)浙大版《数据结构(第2版)》题目集...
  5. 1023:坑爹的黑店
  6. RuoYi-Cloud 部署篇_03(linux环境 Mysql+nginx版本)
  7. Oracle结果集缓存(Result Cache)--服务器、客户端、函数缓存
  8. 一步一步写算法(之哈夫曼树 下)
  9. 隐变量模型(latent variable model)
  10. postfix发送邮件报错:mail for xxxxx.com loops back to myself
  11. Maven中央仓库地址和Nexus 下载地址
  12. 昂达v891w可以用u盘linux,拆机小能手——ONDA 昂达 V891w CH 双系统电脑国产平板 拆解清灰!...
  13. PR转场插件 MAC版 FilmImpact Transition Pack v1-v2
  14. java+mysql 基于ssm的高校毕业生就业管理系统
  15. android jni介绍
  16. 对话系统调查:近期进展与新前沿
  17. mysql常见关键字的用法_MySQL 常用关键字用法详解
  18. 分享16个经典面试问题回答思路
  19. java压缩mp4大小_压缩的mp4视频播放时间太长(exoplayer)
  20. 怎么选择合适的机柜?网络机柜服务器机柜

热门文章

  1. python登录微信自动发送消息和绘画好友男女比例
  2. 【干货】JMeter BeanShell 应用
  3. 监控HP服务器cpu状态脚本
  4. 《互联网运营智慧》十一月进展
  5. opencv matlab测距,基于MATLAB和OpenCV的双目视觉测距系统的实现
  6. 电缆桥架安装规范标准_电缆桥架怎么安装,桥架安装工艺分享
  7. SSH客户端开发开源组件Ganymed SSH-2 for Java初体验
  8. Leetcode 204. 计数质数 解题思路及C++实现
  9. 数据结构源码笔记(C语言):希尔插入排序
  10. java linkedlist 方法_Java LinkedList getFirst()方法与示例