有几百万消息持续积压几小时,怎么解决

简介: 有几百万消息持续积压几小时,怎么解决

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

处理原理:先修复 Consumer 消费的问题,提升消费数据的速度,待数据被消费的差不多时,再将临时的 Consumer 都停掉,恢复到原先的架构。

具体步骤:

1. 新建一个 topic,partition 是原来的 10 倍,临时建立好原先 10 倍的 queue 数量。

2. 然后写一个临时的分发数据的程序,将这个程序部署上去来消费积压的数据,消费之后不做耗时的处理,直接均匀轮询写入临时建立好的 10 倍数量的 queue。

3. 接着临时征用 10 倍的机器来部署 Consumer,每一批 Consumer 消费一个临时 queue 的数据。

这种做法相当于临时将 queue 资源和 Consumer 资源扩大 10 倍,以正常的 10 倍速度来消费数据。

4. 等快速消费完积压数据之后,就得恢复原先部署的架构,重新用原来的 Consumer 机器来消费。

画图理解:

 

相关文章
|
4天前
|
消息中间件 缓存 负载均衡
【线上】如何解决积压消费?
小米,技术分享达人,讲解如何解决分布式系统中消息积压问题。三个步骤包括:1) 修复并扩容consumer以增强消费能力;2) 写程序将Topic消息均匀分发到临时Topic;3) 启动多台consumer并行消费不同临时Topic。优化涉及修复bug、批量与并行消费、缓存优化,以及使用负载均衡和自动化工具确保高可用性。
21 6
|
5天前
|
消息中间件 缓存 Java
避免消息积压的终极指南:四个关键技巧
本文作者小米分享了避免消息积压的四个策略:1) 提高消费并行度,可通过增加消费者实例和利用分区机制;2) 批量消费,利用消息中间件的批量API或自定义批量处理逻辑;3) 减少组件IO交互次数,如使用本地缓存和合并IO操作;4) 优先级消费,设置消息优先级并使用优先级队列。通过这些方法,可以优化消息处理效率,防止消息积压,确保关键业务的顺利进行。
18 5
|
3天前
|
SQL 运维 Serverless
函数计算产品使用问题之实时数据消费太慢,造成积压,该怎么办
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
10月前
|
运维 测试技术
千万级乘客排队系统重构&压测方案——总结篇
千万级乘客排队系统重构&压测方案——总结篇
137 1
|
11月前
|
存储 缓存 监控
线上服务发布抖动,该怎么解决呢
之前的文章分别讲了[优雅上线]和 [优雅下线],实际工作中做了优雅上下线后,服务发布后还是会有短暂的“抖动”,接口的响应时间急剧升高后又恢复正常,就和下面的监控图一样
119 0
线上服务发布抖动,该怎么解决呢
|
消息中间件 运维 Java
kafka单条消息过大导致线上OOM,运维连夜跑路了!
kafka生产者罢工,停止生产,生产者内存急剧升高,导致程序几次重启。 查看日志,发现Pro程序爆异常kafka.common.MessageSizeTooLargeException。
259 0
|
存储 消息中间件 NoSQL
一口气说出 6 种实现延时消息的方案,还有谁不会?!
一口气说出 6 种实现延时消息的方案,还有谁不会?!
|
消息中间件 缓存 算法
阿里二面:RocketMQ 消息积压了,增加消费者有用吗?
阿里二面:RocketMQ 消息积压了,增加消费者有用吗?
220 0
阿里二面:RocketMQ 消息积压了,增加消费者有用吗?
|
消息中间件 存储 Kafka
关于MQ的几件小事(四)如何保证消息不丢失
介绍如何保证消息队列消息不丢失
关于MQ的几件小事(四)如何保证消息不丢失
|
消息中间件 NoSQL Kafka