RabbitMQ 之消息积压

1. 什么是消息积压

当消息数量不断增大,超过了消费者的消费能力,就会造成消息一直存放在队列中无法被消费。

2. 为什么会产生消息积压

  • 生产者生产消息过快:生产者发送消息的速度超过了消费者消费消息的速度,就会造成消费者无法即时消费新消息,导致消息堆积
  • 消费者消费消息速度过慢:
    • 消费消息的业务逻辑复杂,耗时长
    • 消费者代码性能低
    • 内存、CPU 等资源限制
    • 消费者代码出现异常
  • 网络原因:网络不稳定或延迟,导致消费者发送的 ack 无法被服务器接收或丢失,若设置了消息重新入队列,就会造成消息重新发送,也会造成消息积压
  • RabbitMQ 服务器配置偏低

3. 如何处理消息积压

  • 提高消费者消费效率:
    • 优化消费者代码逻辑
    • 设置 prefetch 参数,限制队列最多能容纳消息的数量
    • 当处理消息发生异常时,将消息放入死信队列
  • 降低生产者发送消息的速度:
    • 流量控制:根据消费者处理消息的速率,动态控制生产者发送消息的速率
    • 限流:使用限流工具,为消息发送速率设置一个上限
  • 升级 RabbitMQ 服务器配置
相关推荐
子非衣3 小时前
CenOS7安装RabbitMQ(含延迟队列插件)
分布式·rabbitmq·ruby
linweidong4 小时前
中科曙光Java后端开发面试题及参考答案
分布式·设计模式·spring mvc·tcp协议·三次握手·后端开发·java面经
独自破碎E4 小时前
说说RabbitMQ的集群模式
rabbitmq
rustfs4 小时前
使用 RustFS和 Arq,打造 PC 数据安全备份之道
分布式·docker·云原生·rust·开源
后季暖5 小时前
kafka原理详解
分布式·kafka
回家路上绕了弯5 小时前
Seata分布式事务实战指南:从原理到微服务落地
分布式·后端
LDG_AGI5 小时前
【机器学习】深度学习推荐系统(二十六):X 推荐算法多模型融合机制详解
人工智能·分布式·深度学习·算法·机器学习·推荐算法
利刃大大5 小时前
【RabbitMQ】重试机制 && TTL && 死信队列
分布式·后端·消息队列·rabbitmq·队列
talle20216 小时前
Hadoop分布式资源管理框架【Yarn】
大数据·hadoop·分布式
LDG_AGI6 小时前
【机器学习】深度学习推荐系统(二十五): X 推荐算法特征系统详解:230+ 特征全解析
人工智能·分布式·深度学习·算法·机器学习·推荐算法