page contents

大量消息在 MQ 里长时间积压,该如何解决?

轩辕小不懂 发布于 2021-10-14 14:02
阅读 536
收藏 0
分类:资源下载
2154
Nen
Nen
- 程序员

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

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

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

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

的 10 倍数量的 queue;

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

consumer 资源扩大 10 倍,以正常的 10 倍速度来消费数据;

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

请先 登录 后评论