消息堆积本质


⽣产者的⽣产速度 >> 消费者的处理速度

⽣产者的⽣产速度骤增,⽐如⽣产者的流量突然骤增
消费速度变慢,⽐如消费者实例 IO 阻塞严重或者宕机

如何处理消息堆积

如何处理消息堆积呢?可以从两个当⾯考虑:

  • 如何通过解决系统问题、优化代码来避免消息堆积
  • 消息已经堆积了,线上如何快速处理

发送端性能优化

从消息堆积若⼲原因来看,消息堆积的原因主要在消费端处理上,本身⽣产者端应该遵循的
原则应该是尽可能快的将消息发送到Broker中去,因此发送端除了业务处理时批量发送暂⽆好的
⼿段优化,⽽且并不是所有的业务处理都⽀持批量发送和批量接收处理。

批量发送是发送端预防消息堆积的⽅式之⼀

消费端性能优化

在设计系统的时候,⼀定要保证消费端的消费性能要⾼于⽣产端的发送性能,这样的系统才能健康的
持续运⾏。

  • ⽅式1 增加单个消费者处理能⼒

增加单个消费者的处理能⼒这块没有绝对的办法,只能尽可能的优化消息处理业务逻辑的能
⼒,减少不必要的⾮业务相关处理时间消耗;如果消息处理业务已经优化到⽆法再优化了,那只
能通过⽅式2⽔平扩展消费者个数来优化。

  • ⽅式2 ⽔平扩容消费者个数

消费端的性能优化除了优化消费业务逻辑以外,也可以通过⽔平扩容,增加消费端的并发数
来提升总体的消费性能。

如何快速处理

如果消息已经堆积了,线上如何快速处理。对于系统发⽣消息积压的情况,需要先解决积
压,再分析原因,毕竟保证系统的可⽤性是⾸先要解决的问题。

1、消费端扩容;–通⽤⽅式
2、服务降级;–快速失败,不⼀定适⽤所有业务场景
3、跳过⾮重要消息:发⽣消息堆积时,如果消费速度⼀直追不上发送速度,可以选择丢弃不重要的消息
4、异常监控。–属于运维层⾯措施

【RocketMQ 二十八】RocketMQ 消息堆积相关推荐

  1. kafka maven 依赖_SpringBoot入门建站全系列(二十八)整合Kafka做日志监控

    SpringBoot入门建站全系列(二十八)整合Kafka做日志监控 一.概述 Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端 ...

  2. SpringBoot入门建站全系列(二十八)整合Kafka做日志监控

    SpringBoot入门建站全系列(二十八)整合Kafka做日志监控 一.概述 Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端 ...

  3. WCF技术剖析之二十八:自己动手获取元数据[附源代码下载]

    WCF技术剖析之二十八:自己动手获取元数据[附源代码下载] 原文:WCF技术剖析之二十八:自己动手获取元数据[附源代码下载] 元数据的发布方式决定了元数据的获取行为,WCF服务元数据架构体系通过Ser ...

  4. 关闭数字健康 android 魅族,数字体验 篇二十八:精雕细刻,只为给魅友更好的选择,魅族16s Pro体验分享...

    数字体验 篇二十八:精雕细刻,只为给魅友更好的选择,魅族16s Pro体验分享 2019-09-06 17:31:22 14点赞 10收藏 15评论 当我还一直在称赞魅族16s所拥有的舒适手感表现时, ...

  5. 2008R2Win7管理二十八Mail之基本使用

    2008R2Win7管理二十八Mail之基本使用 上篇我们已经安装好了exchange2010,呵呵本片简单介绍和看下ex2010的基本界面和使用 安装完成打开exchange控制台如图所示 汗,有试 ...

  6. 微信小程序把玩(二十八)image组件

    原文:微信小程序把玩(二十八)image组件 image组件也是一个程序不可缺少的,可以这样说一个app中image组件随处可以看到,一般 image有两种加载方式第一种是网络图片第二种是本地图片资源 ...

  7. Citrix 服务器虚拟化之二十八 XenApp6.5发布文档内容

    Citrix 服务器虚拟化之二十八  XenApp 6.5发布文档内容 XenApp可发布以下类型的资源向用户提供信息访问,这些资源可在服务器或桌面上虚拟化: 1)  服务器桌面:发布场中服务器的整个 ...

  8. OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope

    OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...

  9. (转载)Android项目实战(二十八):使用Zxing实现二维码及优化实例

    Android项目实战(二十八):使用Zxing实现二维码及优化实例 作者:听着music睡 字体:[增加 减小] 类型:转载 时间:2016-11-21 我要评论 这篇文章主要介绍了Android项 ...

最新文章

  1. WIN XP 命令汇总
  2. Mac~终端安装Homebrew packages超时
  3. ConcurrentHashMap的源码分析-数据迁移阶段的实现分析
  4. python传文件给java_python使用简单http协议来传送文件
  5. oracle的安装与plsql的环境配置
  6. MATLAB中数组的原始索引和线性索引之间相互进行转换
  7. 知识查差缺不漏贴:索引的分类
  8. 【代码技巧】21个经典深度学习句间关系模型
  9. VS2010 用户自定义工具箱控件的制作方法
  10. 通俗理解什么是隐马尔科夫模型(hmm)
  11. 【知识图谱】Neo4j 删除、清空数据库的方法
  12. Android如何实现汉字手写输入法(带中文自动识别提示)
  13. 英寸和厘米的换算python_OJ实例:厘米换算英尺英寸
  14. 信息安全数学基础-扩展欧式算法 2021.9.10
  15. NVIDIA Jetson之OTA远程升级Jetpack
  16. 林信良(良葛格)在CSDN上也开专栏了~
  17. ROS-moveit!仿真出现问题:Unable to identify any set of controllers that can actuate the specified
  18. 5.4.4. Primary Keys
  19. Android知识架构 · Java的编程思想
  20. 索尼开发新传感器为激光雷达提供助力,用于自动驾驶和其他应用

热门文章

  1. notepadd++插件管理
  2. 雕虫小技--验证码控件
  3. php实现教学卡片,CSS3实现卡片效果
  4. 2023 299的怀旧QQ直播视频直播间搭建 附软件和教程
  5. table里面的th、td设置宽度后文字还是超出,无法显示省略号
  6. Go time获取本周一\下周一\下周日
  7. openwrt无线连接互联网的实现原理【1】
  8. 日常白嫖QQ小技巧(RGB、文字、翻译的识别)
  9. 视差图转换为深度图公司_视差刻录:使用SVG将照片从2D转换为3D
  10. 10-21-22 查询成绩最高的前三名同学