文章目录
前言
专栏中之前进行了一系列各种模式的配置、使用和测试操作。但是都只是应用于使用阶段,暂未面向问题解决分析方向。
最近看了一篇资料,有大佬说到了消息积压
问题的产生原因等问题。对此做出个人见解说明记录。
消息积压产生的原因
正常而言,一般的消息从消息产生到消息消费需要经过以下几种阶段。
以Direct
模式为例:
消息由生产者产生,比如新订单的创建
等,经过交换机,将消息发送至指定的队列中,然后提供给对应的消费者进行消费。
在这个链路中,存在消息积压的原因大致分为以下几种:
- 1、消费者宕机,导致消息队列中的消息无法及时被消费,出现积压。
- 2、消费者没有宕机,但因为本身逻辑处理数据耗时,导致消费者消费能力不足,引起队列消息积压。
- 3、消息生产方单位时间内产生消息过多,比如“双11大促活动”,导致消费者处理不过来。
消息积压问题解决
针对上面消息积压问题的出现,大致进行了分析,那么根据分析则能制定相关的应对方法。如下所示:
-
1、大促活动等,导致生产者流量过大,引起积压问题。
-
2、上线更多的消费者,处理消息队列中的数据。(和1中的大致类似)
-
3、如果成本有限,则可以专门针对这个队列,编写一个
另类的消费者
。