Rabbitmq延迟发送消息解决方案

一、 什么是延迟队列:

延迟队列存储的对象肯定是对应的延时消息,所谓”延时消息”是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费。

二、 怎样实现延迟消息:

方案1:通过延迟消息或延迟队列或两者都延迟(取时间较短的)的方式实现。

1):通过队列延迟来实现(我在可视化工具来实现):

流程1:

流程2:

1、创建交换器:(一个是延迟消息的交换器(auditExchange),一个是延迟消息重新找到的交换器(delExchage))

注意:这里的delExchange是延迟队列重新找到的交换器。这里Internal设置为NO,否则将无法接受dead letter,YES表示这个exchange不可以被client用来推送消息,仅用来进行exchange和exchange之间的绑定。

2、创建延迟的队列:

注意:

x-message-ttl=30000   设置延迟时间为30000ms.

x-max-length:最大积压的消息个数,可以根据自己的实际情况设置,超过限制消息不会丢失,会立即转向delayToExchange进行投递.

x-dead-letter-exchange:设置为刚刚配置好的delayToExchange,消息过期后会通过delayToExchange进行投递

x-dead-letter-routing-key:是延迟队列重新找到的key

3、延迟队列绑定:

注意:from exchange:设定的是延迟队列的交换器.

routing key:设定的是绑定时的key.

4、延时队列重新找到的交换器与queue绑定:

注意:from exchange:是延迟队列重新找到的交换器。

routing key:是延迟队列重新找到的key。

方案2:通过插件来实现。在rabbitmq 3.5.7及以上的版本提供了一个插件(rabbitmq-delayed-message-exchange)来实现延迟队列功能。同时插件依赖Erlang/OPT 18.0及以上。

RabbitMq消息中心_延迟发送消息相关推荐

  1. Rabbitmq消息中心_消息中心总体方案

    消息中心方案 一.消息中心简介 为了将各个应用系统之间进行业务解耦,对业务的透明化处理及技术架构的统一管理,方便对各应用的整体把控,保证系统的稳定性,也方便各应用的消息中间件的快速搭建,因此搭建消息中 ...

  2. Rabbitmq消息中心_消息追踪

    消息追踪方案 一.消息追踪介绍 消息中心的消息追踪需要使用Trace实现,Trace是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试.排错.可通过插件形式提供可视化界面 ...

  3. RabbitMq消息中心_消息中心一致性

    消息中心一致性解决方案 1.介绍 消息发送一致性是指产生消息的业务动作和消息的发送一致,两者要不同时成功或失败.在确定使用rabbitmq作为消息中心的实现框架后,消息发送的一致性应结合实际的框架实现 ...

  4. Apache Kafka-生产者_批量发送消息的核心参数及功能实现

    文章目录 概述 参数设置 Code POM依赖 配置文件 生产者 消费者 单元测试 测试结果 源码地址 概述 kafka中有个 micro batch 的概念 ,为了提高Producer 发送的性能. ...

  5. 骑士卡:基于Kafka搭建消息中心,上亿消息推送轻松完成

    全球购骑士卡是国内领先的会员制特权电商平台,汇聚国内外"吃喝玩乐买"超 300 项会员专属优惠特权.全球购骑士卡基于移动互联生活方式,打通线上.线下消费场景,汇集时下热门.高频的商 ...

  6. rocketmq怎么保证消息一致性_如何保证消息队列的高可用和幂等性以及数据丢失,顺序一致性...

    (1)RabbitMQ的高可用性 RabbitMQ是比较有代表性的,因为是基于主从做高可用性的,我们就以他为例子讲解第一种MQ的高可用性怎么实现. rabbitmq有三种模式:单机模式,普通集群模式, ...

  7. java发送苹果消息慢_Spring-boot JMS 发送消息慢的解决方法

    Spring-boot JMS 发送消息慢的问题解决 @Service public class Producer { @Autowired private JmsMessagingTemplate ...

  8. 编写精美的聊天界面(左边显示接收消息,右边显示发送消息)(项目已上传GitHub)

    附上我的GitHub项目地址: https://github.com/Skymqq/UIChat.git 学习Android开发,了解一个精美聊天界面的实现是很有必要的,如果可以掌握这个技能,那么在下 ...

  9. 【Kafka消息队列】生产者发送消息流程

    如何描述一条消息? 如何描述一条消息,就是在问这条消息的数据结构是什么? public class ProducerRecord<K, V> {private final String t ...

最新文章

  1. c#直接调用ssis包实现Sql Server的数据导入功能
  2. 0215互联网新闻 | TikTok在美月度用户数量过去三个月内增加3000万;5G智能手机测试机首批正式交付...
  3. oracle pl/sql 游标,Oracle PL/SQL 关于游标的介绍
  4. Python中的枚举类型
  5. 织物印花疵点专用术语大全
  6. JavaScript对象与创建对象的方式
  7. 电脑重装系统U盘引导不了
  8. Nginx-详解其原理
  9. 拜师——python基础入门—第3大节课—列表,排序,revered逆序,max,min,sum——day15
  10. 十五个问题了解个税汇算清缴
  11. 教你2种常用的电商高并发处理解决方案
  12. 代码主题darcula_Intellij idea 中的Darcula主题怎么把颜色改回来?
  13. 目录结构及其文本编辑器
  14. 「BZOJ4763」雪辉
  15. 建tcode維護自己創建的數據表(SE54/SM30)
  16. 不用写代码,用表格居然能开发软件和APP
  17. 基于AnimeGAN模型生成宫崎骏风格动漫照片
  18. FFmpeg学习笔记--FFplay播放控制、FFplay基本命令参数、FFplay高级命令参数
  19. angular7+underscore的使用
  20. 【牛客网】美国节日与因式分解

热门文章

  1. tf.nn.leaky_relu()函数
  2. Python中文全攻略 中文乱码 输出中文乱码
  3. 【调剂】上海理工大学软件工程接收调剂研究生
  4. 图像迁移风格保存模型_图像风格迁移
  5. opencv 图像拼接
  6. 线性模型之二:线性回归模型性能的评估(残差图、MSE与R2)
  7. Atom终端命令行插件
  8. 金融机构的IT团队前置
  9. Qt中添加资源文件及资源文件的使用
  10. MATLAB基于Canny边缘检测的车牌识别