04 MQ消息积压怎么处理

消息积压你是怎么处理的?

设计系统时,要保证消费端的消费性能要高于生产者的发送性能,这样系统才能健康持续运行。
消息积压产生的原因有2种:第一是消息生产速度过快,另一种是消息消费速度变慢。可以通过查看消息队列内置的监控数据,确定是生产端还是消费端的原因。

如果是消费端的原因,就进行消费端性能优化:

  1. 首先可以优化消费业务逻辑,尽量减少冗余。还可以增加消费端的并发数,也就是扩容Consumer实例,也必须同步扩容主题中的队列数量,确保Consumer的实例数量和队列数量相等。
  2. 如果是有大促或者抢购导致消息突增,短时间内不可能通过优化代码来解决,唯一的方法是通过增加消费者实例数来提升总体的消费能力。如果短时间内没有足够的服务器资源进行扩容,那么可以将系统降级,关闭一些不重要的业务,减少生产者生产的消息数量,让系统尽可能正常运转,服务一些重要的业务。

如果通过监控发现生产消息的速度和消费消息的速度都没有什么异常,那就需要检查一下消费端,是不是消费失败导致了一条消息反复消息。

如果监控到消费变慢了,需要检查一下消费实例,分析一下是什么原因导致消费变慢。可以检查一下日志看是否有大量的消费错误,还可以通过打印堆栈信息,看一下消费线程是不是卡在什么地方了,比如发生死锁或者等待资源。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值