强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

【前言】

最近在项目中用到了RabbitMQ来做异步处理,自己将这块儿系统的搞了搞,下面主要记录一下自己在研究过程中对死信队列的一些研究。

【实践】

        一、如何配置死信队列?

1、增加死信队列(exchange-ttl-to.queue)

2、增加死信交换机(exchange-ttl-to)并绑定死信队列

3、配置正常的队列(exchange-ttl-from.queue)

4、增加正常的交换机(exchange-ttl-from)

        二、用代码进行相关测试:

1、生产者进行添加,20s后不进行消费,发现消息从正常的队列进入了死信队列;

2、生产者进行添加,消费者进行消费;

3、设置死信队列要根据具体的业务场景去应用,一般应用在当正常业务处理时出现异常时,将消息拒绝则会进入到死信队列中,有助于统计异常数据并做后续处理;

        三、利用jemeter进行压力测试:

1、向正常队列中压入1000条消息,生产者不消费,过20s后发现进入死信队列;

2、向正常队列中压入1000条消息,消费者一直在消费,看20s后消费者能消费多少条消息;

【总结】

1、对程序进行异步处理后可以缓解一方产生块另一方消费慢的问题;

2、可以实现延迟处理的功效:数据上来后先进入正常的queue中(根据业务设置相应的失效时间【延迟时间】)进入死信队列,消费者消费死信队列中的数据;注:正常queue没有消费者,死信queue有消费者;

3、给客户的体验感好了,异步处理后,不需要等待同步的结果;

RabbitMQ的死信队列的应用相关推荐

  1. RabbitMq(五) -- 死信队列和延迟队列

    1. 死信 1.1 死信的概念 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue ...

  2. RabbitMQ:死信队列

    ✨ RabbitMQ:死信队列 1.死信队列 1.1死信队列基本介绍 1.2消息成为死信的三种情况 1.3死信队列结构图 1.4死信的处理方式 2.TTL消息过期时间 2.1基本介绍 2.2生产者 2 ...

  3. rabbitMQ学习-死信队列

    死信队列 死信:顾名思义就是无法被消费的消息,一般情况下,product将消息投递到broker或者直接到queue里,consumer从queue取出消息,进行消费,但某些时候由于特定的原因导致qu ...

  4. RabbitMQ 之死信队列

    文章目录 什么是死信队列 如何配置死信队列 死信消息的变化 死信队列应用场景 总结 什么是死信队列 为了保证订单业务的消息数据不丢失,需要使用到RabbitMQ的死信队列机制,当消息消费发生异常时,将 ...

  5. rabbitmq利用死信队列+TTL 实现延迟队列

    2019独角兽企业重金招聘Python工程师标准>>> 适用场景:订单超时未支付,倘若适用定时器的话,那么数据量大的话,轮询查询数据,首先IO开销大,其次任务时间要求高,扫描越频繁性 ...

  6. 消息中间件之rabbitMQ实战-死信队列

    该篇文章内容较多,包括有rabbitMq相关的一些简单理论介绍,集成spring Boot,provider消息推送实例,consumer消息消费实例,Direct(直连类型交换机).Fanout(广 ...

  7. RabbitMQ实现死信队列

    目录 死信队列是什么 怎样实现一个死信队列 说明 实现过程 导入依赖 添加配置 编写mq配置类 添加业务队列的消费者 添加死信队列的消费者 添加消息发送者 添加消息测试类 测试 死信队列的应用场景 总 ...

  8. RabbitMQ高级特性(五):RabbitMQ之死信队列DLX

    一.死信队列简介 (1)死信队列 死信队列,英文缩写:DLX .Dead Letter Exchange(死信交换机),当消息成为Dead message后,可以被重新发送到另一个交换机,这个交换机就 ...

  9. RabbitMQ的死信队列

    什么是死信 在 RabbitMQ 中充当主角的就是消息,在不同场景下,消息会有不同地表现. 死信就是消息在特定场景下的一种表现形式,这些场景包括: 消息被拒绝访问,即 RabbitMQ返回 nack ...

最新文章

  1. 源码安装nginx开启SSL功能
  2. php 判断浏览器是ie,js判断是否是ie浏览器
  3. liunx系统不能登陆的问题
  4. mariadb mysql 5.6_MySQL / MariaDB 5.5 升级到 MySQL 5.6
  5. java 浮点型 除零_Java-非零整数除以10等于0.0浮点?
  6. python输入的方式有几种_Python输入方式具体的三种实现方式
  7. Angular使用总结 --- 模型驱动表单
  8. SpringBoot 优雅停止服务的几种方法
  9. GCC the GNU
  10. android实现下载的核心代码
  11. WordPress主题精美写真图片图集网站源码
  12. Component name “XXX“ should always be multi-word vue/multi-word-component-names
  13. CSS - (Cascading Style Sheets) 自学教程
  14. 主成分分析(PCA)原理分析Python实现
  15. 个性化智能推荐(协同过滤算法)技术研究
  16. Google 推出浏览器版Google Voice
  17. 剖析visa信用卡支付的交易处理流程
  18. 【HTPC】第一期jellyfin windows版使用显卡硬件转码
  19. 声网Agora Lipsync技术剖析:通过实时语音驱动人像模拟真人说话
  20. 什么是内联电子商务_什么是电子商务

热门文章

  1. 阿里每天纳税超 1.4 亿元;余承东:苹果很难和华为竞争;三星 Note 7 爆炸案终审 | 极客头条...
  2. GitHub 日收 7000 星,Windows 计算器项目开源即爆红!
  3. 程序员如何自制酒店 Wi-Fi?
  4. 作为一个菜鸟码农,如何判断你所在的团队是否有前途?
  5. 苹果发布 2017 年度应用榜单,你的 App 榜上有名吗?
  6. Java定义全局变量的方法
  7. 牛逼!mysql创建库books
  8. esxi vsphere的端口_硬干货!一张图弄清楚在ESXi下如何进行网络抓包
  9. php5.5 pdo mysql_PHP5中PDO的简单使用
  10. c 普通的文本变成注释文本的快捷键_phpstrom 快捷键,记一下记一下!(life)