记一次生产mq事故

621 阅读1分钟

背景

        发布新服务,新服务有支付功能,监听业务线支付回调队列。现象是mq服务器出现流量过大,消息挤压情况,cpu达到70%

问题原因

监听queue处理业务逻辑时,采用自动ack消息模式。


由于出现空指针异常,导致没有执行自动ack,相当于消费者消失,数据挤压严重导致cpu飙升

解决方案

  1. 使用try-catch,捕获特定异常进行埋点,方便处理用户问题
  2. 在catch中进行ack操作
  3. 监听采用异步多线程处理,提高消费水平