RocketMQ消息堆积主要分为三个层次的问题:
其一是producer生产速率过快,什么场景呢,比如producer故障,比如DOS攻击,比如业务高峰(超过企业预估的,例如 12306订票,双十一下单,这些一开始的时候都有超过预期的情况)。
其二是Broker消息堆积,比如Broker的性能瓶颈,Broker同步策略导致消息堆积等
其三是Consumer本身已经拉取消息的堆积。consumer消息拉取超过一定量之后会暂停消息拉取,一方面是消费者本身消费 能力的现在,另一方面是由于消费端过多的消息容易造成GC频繁。
一般情况下我们都可以通过限流和扩容来达到快速处理堆积的消息的目标。
熟悉了消息堆积场景,我们还需要明确消息堆积的诊断,常用的工具包括producer发送速率监控,producer服务器性能监控(网络、CPU、内存等),broker性能监控(网络、CPU、内存,磁盘使用率,GC等),消费端消费速率,消费端consumer服务器性能监控(网络、CPU、内存、数据库、GC等)
1.判断是否存在消息堆积场景
1.1producer发送消息的速率监控
1.2producer发送消息的maxOffset与consumer消费消息的currOffset的差异值与给定的消息堆积数值告警值对比,如果差异 值大于数据告警值,则存在消息堆积,否则不存在消息堆积。
&n

本文深入探讨RocketMQ消息堆积的三大层次问题,包括生产者、Broker及消费者层面,并提出限流与扩容的处理策略。通过监控指标判断消息堆积场景,如生产速率与消费速率不匹配,Broker性能瓶颈等。
最低0.47元/天 解锁文章
924

被折叠的 条评论
为什么被折叠?



