0
点赞
收藏
分享

微信扫一扫

大量消息在MQ里积压了几个小时解决方案

在觉 2023-07-17 阅读 10

一个消费者一秒是1000条,一秒3个消费者是3000条,一分钟就是18万条。所以如果积压了几百万到上千万的数据,即时消费者恢复了,也需要大概1个小时的时间才能恢复过来。

一般这个时候,临时紧急扩容,具体步骤和思路如下:

1、先修复consumer的问题,确保其恢复消费速度,然后将现有consumer都停掉。

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

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

4、接着临时征用10倍的机器来部署consumer,每一批consumer消费一个临时queue的数据。这种做法相当于是临时将queue资源和consumer资源扩大10倍,以正常的10倍速度来消费数据。

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

举报

相关推荐

0 条评论