消息积压处理办法1:临时紧急扩容

  1. 先修复consumer的问题,确保其恢复消费速度,然后将现有consumer都停掉。新建一个topic,partition是原来的10倍,临时建立好原先10倍的queue数量。然后写一个临时的分发数据的consumer程序,这个程序部署上去消费积压的数据,消费之后不做耗时的处理,直接均匀轮询写入临时建立好的10倍数量的queue。

  2. 接着临时征用10倍的机器来部署consumer,每一批consumer消费一个临时queue的数据。这种做法相当于是临时将queue资源和consumer资源扩大10倍,以正常的10倍速度来消费数据。等快速消费完积压数据之后,的恢复原先的部署的架构,重新用原先的consumer机器来消费消息

MQ中消息失效

假设你用的是RabbitMQ,RabbitMQ是可以设置过期时间,也就是TTL。如果消息在queue中积压超过一定的时间就会被RabbitMQ给清理掉,这个数据就没了。那这就是第二个坑了。这就不是说数据会大量积压在mq里,而是大量的数据会直接丢失。

  • 方案: 重导。就是大量积压的时候,我们当时就直接丢弃数据了,然后等过了高峰期以后,比如大家一起喝咖啡熬夜到晚上12点以后,用户都睡觉了。这个时候我们就开始写程序,将丢失的那批数据,写个临时程序,一点一点的查出来,然后重新灌入mq里面去,把白天丢的数据给他补回来。也只能是这样了。加入1w个订单积压在mq里面,没有出来,其中1000个订单都丢了,你只能手动写程序把那1000个订单给查出来,手动发到mq里去再补一次

mq消息队列满了

如果消息积压在mq里,你很长时间都没有处理掉,此时导致mq都快写满了,咋办? 这个还有别的办法吗?没有,谁让你第一个方案执行的太慢了,你临时写程序,接入数据来消费,消费一个丢弃一个,都不要了,快速消费掉所有的消息。然后走第二个方案,到了晚上再补数据吧

消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?大量消息持续积压几个小时,怎么办?...相关推荐

  1. 消息队列面试 - 如何解决消息队列的延时以及过期失效问题?

    消息队列面试 - 如何解决消息队列的延时以及过期失效问题? 面试题 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决? 面试官心理分析 你看 ...

  2. 消息队列超详解(以RabbitMQ和Kafka为例,为何使用消息队列、优缺点、高可用性、问题解决)

    消息队列超详解(以RabbitMQ和Kafka为例) 为什么要用消息队列这个东西? 先说一下消息队列的常见使用场景吧,其实场景有很多,但是比较核心的有3个:解耦.异步.削峰. 解耦:现场画个图来说明一 ...

  3. 消息队列之延时消息应用解析及实践

    简介:消息队列常用于实现业务需要的异步.解耦以及削峰功能.但在某些特殊的业务场景中,还需要消息队列服务本身支持一些特殊的消息类型,比如常见的延时消息.本次直播为您深入剖析延时消息的特性.应用场景,对比 ...

  4. 利用rabbitMq的死信队列实现延时消息

    前言 使用mq自带的死信去实现延时消息要注意一个坑点,就是mq只会检测队首的消息的过期时间,假设先放入队列10s过期消息,再放入2s过期.mq会检测头部10s是否过期,10s不过期的情况下,2s就算过 ...

  5. react 消息队列_具有AkkaReact流的React队列

    react 消息队列 React性流是最近宣布的一项计划,旨在在JVM上为具有内置背压的异步流处理创建标准. 该工作组由Typesafe,Red Hat,Oracle,Netflix等公司组成. 早期 ...

  6. 最近发现系统rabbitmq丢消息比较严重,于是想了些方案来查找原因,给将消息发送方式添加确认机制。 我们在本地模拟了wms发送打标消息的场景. 1. 有事务 2. 先发点对点队列, 再发订

    最近发现系统rabbitmq丢消息比较严重,于是想了些方案来查找原因,给将消息发送方式添加确认机制. 我们在本地模拟了wms发送打标消息的场景. 1. 有事务 2. 先发点对点队列, 再发订阅队列 3 ...

  7. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...

    源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkP ...

  8. 【RocketMQ】消息重试、重试次数设置、死信队列

    文章目录 1. 死信队列 1.1 死信特性 1.2 查看死信消息 2.重试次数参数 2.1 Producer端重试 2.2 Consumer端重试 3.1 异常重试 3.2 超时重试 参考 1. 死信 ...

  9. (12)RabbitMQ的TTL(消息有效期)和DLX(死信交换机/队列)

    本节继续介绍RabbitMQ的高级特性:TTL(Time-To-Live消息有效期)和DLX(Dead-Letter-Exchange死信交换机.死信队列) RabbitMQ的TTL 1.TTL概述 ...

最新文章

  1. 最新自然语言处理领域顶会论文大合集!
  2. 从源码分析DEARGUI之动态绘图的两种方法
  3. log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?...
  4. 转载-如何应对在线故障
  5. Python中DataFrame关联
  6. OpenCV中Mat属性step,size,step1,elemSize,elemSize1
  7. 【今日CV 计算机视觉论文速览 第136期】Wed, 26 Jun 2019
  8. 云小课 | 网站接入WAF失败怎么办?看这里就够了
  9. Zookeeper使用案例
  10. spring揭秘_「死磕 Spring」—– IOC 之深入理解 Spring IoC
  11. scratch飞机大战图片素材包,值得您的分享!
  12. 我在华为做外包的真实经历!
  13. 以太网芯片W3100A到W3150A+的移植笔记(一)
  14. js 滚动显示获奖名单
  15. 问题 A: 【二维数组】计算三阶行列式的值
  16. Eclipse Scala环境的配置
  17. NMN产品是什么性质,nmn产品之间效果差异,学会取舍
  18. 在GT 820M显卡的笔记本上安装PyTorch的尝试
  19. LeaRun.Framework━ .NET快速开发框架 ━ 工作流程组件介绍
  20. BootStrap-CSS样式_排版_页面主体(段落中字体和页边距设置)

热门文章

  1. 实时荧光定量聚合酶链式反应和2-▲CT方法分析相关基因表达数据
  2. Google学术分析公司科研实力:谷歌1161,华为110,为何差10倍?
  3. 中科院分子细胞中心、清华大学和Bio-protocol联手发布《高通量筛选实验手册》...
  4. MPB:中大李文均组-河口水体和沉积物中微生物的分离培养与鉴定
  5. Nature子刊封面:浙大王蒙岑组揭示水稻种子内生菌抗病新功能
  6. MITRE:利用微生物组时间序列数据推断与宿主状态变化相关的特征
  7. GigaScience:ASaiM基于Galaxy微生物组分析框架
  8. R语言构建logistic回归模型:WVPlots包PRTPlot函数可视化获取logistic回归模型的最优阈值、优化(precision、enrichment)和recall之间的折衷
  9. R语言ggplot2可视化图中添加希腊字母实战
  10. fsl线性配准实践+核磁共振影像数据处理