本书未发布
线上几百万消息积压处理
前提
大量消.息在 mq 里积压了几个小时了还没解决上线后,代码故障,新消.息队列进行发送,消费者不能正常消息.导致几百万条数据在 MQ 里进行积压了好几个个小时。
解决
1 、先修复 consumer 的问题,确保其恢复消费速度,然后将现有 consumer 都停掉。
2 、临时建立好原先 10 倍或者 20 倍的 queue 数量。
3 、然后写一个临时分发消息的 consumer 程序,这个程序部署上去消费积压的消息,消费之后不做耗时处理,直接均匀轮询写入临时建好分 10 数量的 queue 里面。
4 、紧接着征用 10 倍的机器来部署 consumer ,每一批 consumer 消费一个临时 queue 的消.息。
5 、这种做法相当于临时将 queue 资源和 consumer 资源扩大 10 倍,从正常速度的 10 倍来消费消息。
推荐文章: