MQ 学习日志(八) 消息队列的延时以及过期失效问题处理

简介: 消息队列的延时以及过期失效问题处理

如何解决消息队列的延时以及过期失效问题?消息队列满了以后,该如何处理,有几百万消息持续积压几小时,如何解决

第一个坑(Kafka)

一般这个时候只能操作临时紧急扩容了,具体操作步骤和思路如下

  1. 先修复consumer的问题,确保其恢复消费速度,然后将现有的consumer都停掉
  2. 新建一个topic,设定partition是原来的10倍,临时建立好原先10倍或者20倍的queue数量
  3. 然后写一个临时的分发数据的consumer程序,这个程序部署上去消费积压的数据,消费之后不做耗时的处理,直接均匀轮询写入临时创建好的10倍的数量的queue的数据
  4. 这种做法相当于临时将queue资源和consumer资源扩大10倍,以正常的10倍速度来消费数据
  5. 等快速消费完积压数据之后,得恢复原先部署架构,重新用原先的consumer机器来消费消息
第二个坑

使用的rabbitMQ,并且RabbitMQ是可以设置过期时间,就是TTL,如果消息再queue中积压超过一定的时间就会被rabbitMQ给清理掉,这个数据就没了,这就是麻了,

这个情况下不要增加consumer消费积压的消息,因为实际上并不是消息积压,而是丢了大量的消息,我们可以采取第一个方案,就是批量重导,就是当高峰期的时候,直接将数据丢弃,等高峰期过了以后,开始做处理,将丢失的那批数据,写一个临时程序,一点一点查出来,然后重新将消息灌入到mq里面中,将白天丢失的数据补回来

第三个坑

如果走的方式是消息积压在mq里面,那么长时间都没处理掉,导致mq都快写满了,这个情况下如何解决,先执行第一个方案,写一个临时程序,将所有的消息消费一个丢弃一个,先快速将所有的消息处理掉,然后晚上一点一点补吧

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
2月前
|
消息中间件 Java API
RocketMQ事务消息, 图文、源码学习探究~
介绍 RocketMQ是阿里巴巴开源的分布式消息中间件,它是一个高性能、低延迟、可靠的消息队列系统,用于在分布式系统中进行异步通信。 从4.3.0版本开始正式支持分布式事务消息~ RocketMq事务消息支持最终一致性:在普通消息基础上,支持二阶段的提交能力。将二阶段提交和本地事务绑定,实现全局提交结果的一致性。 原理、流程 本质上RocketMq的事务能力是基于二阶段提交来实现的 在消息发送上,将二阶段提交与本地事务绑定 本地事务执行成功,则事务消息成功,可以交由Consumer消费 本地事务执行失败,则事务消息失败,Consumer无法消费 但是,RocketMq只能保证本地事务
|
5天前
|
监控 Docker 容器
Docker从入门到精通:Docker log 命令学习
了解 Docker 日志管理对容器监控至关重要。`docker logs` 命令用于查看和管理容器日志,例如,`docker logs <container_name>` 显示容器日志,`-f` 或 `--follow` 实时跟踪日志,`--tail` 显示指定行数,`--timestamps` 添加时间戳,`--since` 按日期筛选。Docker 支持多种日志驱动,如 `syslog`,可通过 `--log-driver` 配置。有效管理日志能提升应用程序的稳定性和可维护性。
8 0
|
21天前
|
消息中间件 存储 负载均衡
消息队列学习之RabbitMQ
【4月更文挑战第3天】消息队列学习之RabbitMQ,一种基于erlang语言开发的流行的开源消息中间件。
17 0
|
25天前
|
消息中间件 存储 负载均衡
消息队列学习之kafka
【4月更文挑战第2天】消息队列学习之kafka,一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台。
17 2
|
2月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表11、日志和备份——1、查看日志——2、数据备份和恢复(mysqldump, mysqlbinlog)
MySQL技能完整学习列表11、日志和备份——1、查看日志——2、数据备份和恢复(mysqldump, mysqlbinlog)
47 0
|
2月前
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
53 0
|
3月前
|
消息中间件 缓存 运维
【面试问题】如何解决消息队列的延时以及过期失效问题?
【1月更文挑战第27天】【面试问题】如何解决消息队列的延时以及过期失效问题?
|
3月前
|
消息中间件 存储 Kafka
MQ消息队列学习入门
MQ消息队列学习入门
77 0
|
1月前
|
消息中间件 存储 监控
RabbitMQ:分布式系统中的高效消息队列
RabbitMQ:分布式系统中的高效消息队列
|
4月前
|
消息中间件 NoSQL 数据库
一文讲透消息队列RocketMQ实现消费幂等
这篇文章,我们聊聊消息队列中非常重要的最佳实践之一:消费幂等。
一文讲透消息队列RocketMQ实现消费幂等