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月前
|
消息中间件 网络协议 JavaScript
MQTT常见问题之微消息队列mqtt支持ipv6失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
1天前
|
消息中间件 存储 运维
深入理解MQ消息队列的高可用与可靠性策略
深入理解MQ消息队列的高可用与可靠性策略
11 3
|
12天前
|
SQL 监控 关系型数据库
【MySQL学习】MySQL的慢查询日志和错误日志
【MySQL学习】MySQL的慢查询日志和错误日志
|
17天前
|
消息中间件 大数据 Java
消息队列 MQ
消息队列 MQ
24 3
|
18天前
|
监控 Docker 容器
Docker从入门到精通:Docker log 命令学习
了解 Docker 日志管理对容器监控至关重要。`docker logs` 命令用于查看和管理容器日志,例如,`docker logs <container_name>` 显示容器日志,`-f` 或 `--follow` 实时跟踪日志,`--tail` 显示指定行数,`--timestamps` 添加时间戳,`--since` 按日期筛选。Docker 支持多种日志驱动,如 `syslog`,可通过 `--log-driver` 配置。有效管理日志能提升应用程序的稳定性和可维护性。
17 0
|
20天前
|
消息中间件 数据安全/隐私保护
MQTT微消息队列服务器连接报错:Error: Connection refused: Not authorized
使用MQTTX工具进行测试时,通过AccessKey创建了Client ID的用户名和密码。配置了公网接入点及端口1883,但尝试连接时出现错误。已附上工具截图:![](https://ucc.alicdn.com/pic/developer-ecology/3byii5uar64gg_36327474e991439da422f38c450ef153.png)。确认过用户名、密码和Client ID无误,问题仍未解决,期待回复!
|
1月前
|
消息中间件 存储 监控
解析RocketMQ:高性能分布式消息队列的原理与应用
RocketMQ是阿里开源的高性能分布式消息队列,具备低延迟、高吞吐和高可靠性,广泛应用于电商、金融等领域。其核心概念包括Topic、Producer、Consumer、Message和Name Server/Broker。RocketMQ支持异步通信、系统解耦、异步处理和流量削峰。关键特性有分布式架构、顺序消息、高可用性设计和消息事务。提供发布/订阅和点对点模型,以及消息过滤功能。通过集群模式、存储方式、发送和消费方式的选择进行性能优化。RocketMQ易于部署,可与Spring集成,并与Kafka等系统对比各有优势,拥有丰富的生态系统。
146 4
|
1月前
|
消息中间件 存储 负载均衡
消息队列学习之RabbitMQ
【4月更文挑战第3天】消息队列学习之RabbitMQ,一种基于erlang语言开发的流行的开源消息中间件。
19 0
|
1月前
|
消息中间件 存储 负载均衡
消息队列学习之kafka
【4月更文挑战第2天】消息队列学习之kafka,一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台。
22 2
|
2月前
|
消息中间件 存储 监控
RabbitMQ:分布式系统中的高效消息队列
RabbitMQ:分布式系统中的高效消息队列