背景
发布新服务,新服务有支付功能,监听业务线支付回调队列。现象是mq服务器出现流量过大,消息挤压情况,cpu达到70%
问题原因
监听queue处理业务逻辑时,采用自动ack消息模式。
由于出现空指针异常,导致没有执行自动ack,相当于消费者消失,数据挤压严重导致cpu飙升
解决方案
- 使用try-catch,捕获特定异常进行埋点,方便处理用户问题
- 在catch中进行ack操作
- 监听采用异步多线程处理,提高消费水平
发布新服务,新服务有支付功能,监听业务线支付回调队列。现象是mq服务器出现流量过大,消息挤压情况,cpu达到70%
监听queue处理业务逻辑时,采用自动ack消息模式。
由于出现空指针异常,导致没有执行自动ack,相当于消费者消失,数据挤压严重导致cpu飙升