您当前的位置: 首页 资讯 > > 正文

MQ——消息积压如何处理

2023-04-08 15:08:42 来源:博客园 分享到:


(资料图片仅供参考)

一、消息积压的原因

1、producer生产消息突然增多

比如大促期间,抢购,秒杀业务。

2、consumer消费性能突然下降

比如消费失败时重试,程序死锁,io阻塞。

3、消费系统本身出现瓶颈

这种情况很少,对于绝大多数使用消息队列的业务来说,消息队列本身的处理能力要远大于业务系统的处理能力。主流消息队列的单个节点,消息收发的性能可以达到每秒钟处理几万至几十万条消息的水平,还可以通过水平扩展 Broker 的实例数成倍地提升处理能力。

二、解决方法

  1. 临时扩容,增加消费端,用硬件提升消费速度。*注意扩容consumer的同时要扩容分区(队列)数量,因为每个分区上只能单线程消费
  2. 服务降级,关闭一些非核心业务,减少消息生产。
  3. 通过日志分析,监控等找到挤压原因,消息队列三部分: 上游生产者是否异常生产大量数据,中游消息队列存储层是否出现问题,下游消费速度是否变慢(消费端日志是否有大量消费失败重试,是否有死锁,是否有io阻塞),确定哪个环节出了问题
  4. 根据排查解决异常部分。
  5. 等待积压的消息被消费,恢复到正常状态,撤掉扩容服务器。

关键词:

x 广告

Copyright   2015-2023 华夏超市网版权所有  备案号:琼ICP备2022009675号-37   联系邮箱:435 227 67@qq.com