最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

MQ——消息积压如何处理

来源:博客园


(资料图)

一、消息积压的原因

1、producer生产消息突然增多

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

2、consumer消费性能突然下降

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

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

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

二、解决方法

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

关键词: