点击上方
“Java架构师社区”关注我们,设为星标
回复"架构师"获取资源
1 概述
最近生产环境的消息通知队列发生了大量的数据积压问题,从而影响到整个平台商户的交易无法正常进行,最后只能通过临时关闭交易量较大的商户来缓解消息队列积压的问题,经线上数据分析,我们的消息队列在面对交易突发洪峰的情况下无法快速的消费并处理队列中的数据,考虑到后续还会出现各种交易量突发状况,以下为针对消息队列(ActiveMQ)的优化过程。
2 消息队列通信图
3 问题定位与分析
3.1 消息通知数据为什么会被积压?分析:平台中每个交易的发生可能会产生一到多条的消息通知数据,这些通知数据会通过消息队列(ActiveMQ)来中转消费并处理,那么在交易量突发洪峰的情况下会产生大量的消息通知数据,如果消息队列(ActiveMQ)的消费能力被阻塞的话会严重影响到数据的吞吐量,从而积压大量数据无法被快速处理!
3.2 配置了多个ActiveMQ的消费者为什么数据积压还是无法缓解?分析:经过分析消息队列的数据消费处理模块的代码,消息的消