后端与系统架构图文讲义2501 字

如何解决消息堆问积的题

·全库 593 / 611

《如何解决消息堆问积的题》共 13 页、0.3 万字,通篇围绕 并发、数据库、吞吐、延迟 展开,归在「后端与系统架构」这一层。

覆盖并发数据库吞吐延迟缓存场景

适合给 AI 系统搭底座、要管得住的人

目录骨架(8 节)
  1. 如何解决消息堆积的问题?
  2. 消息堆积的主要瓶颈
  3. 消费耗时导致的消息堆积
  4. 如何解决消息堆积问题
  5. 通过 JVM 堆栈分析消费耗时
  6. 消息堆积概念
  7. 提交消贽线程
  8. 提交消费线程

原 PDF 已逐页还原成图,共 13 页,这里先放前 3 页,其中 2 页识别出了标题。右侧文字由 OCR 按版面重排,可能有个别错字,以图为准;点图可全屏放大。

本讲义目录 · 3 页
  1. 01如何解决消息堆积的问题?
  2. 02消息堆积概念
  3. 03消息堆积的主要瓶颈
011 / 3
第 1 页:如何解决消息堆积的问题?
第 1 页

如何解决消息堆积的问题?

College:

阿里

薪资:35K 岗位:高级开发

022 / 3
第 2 页
第 2 页

消息堆积概念

消息堆积概念

MessageQueue

消费者在消费的过程中,消费的速度跟不上服务端的发送速度,未处理的消息 会越来越多,消息出现堆积进而会造成消息消费延迟。 RocketMQ、Kafka 具备堆积的能力,但是以下场景需要重点关注消息堆积和 延迟的问题: 1.业务系统上下游能力不匹配造成的持续堆积,且无法自行恢复。 2. 业务系统对消息的消费实时性要求较高,即使是短暂的堆积造成的消息延 迟也无法接受。

033 / 3
第 3 页:消息堆积的主要瓶颈
第 3 页

消息堆积的主要瓶颈

客户端使用 Push 模式启动后,消费消息时,分为以下两个阶段: 阶段一:拉取消息 客户端通过长轮询批量拉取的方式从 Broker 服务端获取消息,将拉取到的消息缓存到本地缓冲队列中。 客户端批量拉取消息,常见内网环境下都会有很高的吞吐量,例如:1 个单线程单分区的低规格机器( 4C8GB)可以达到几万 TPS,如果是多个分区可以达到几十万 TPS。所以这一阶段一般不会成为消息堆 积的瓶颈。 长轮询:Consumer 主动发起请求到 Broker,正常情况下 Broker 应消息给 Consumer;在没有消息或者 其他一些特殊场景下,可以将请求阻塞在服务端延迟返回。长轮询不是一种 Push 模式,而是 Pull 的一个变 种

RocketMQ 客户端

提交消贽线程

消息 消息 消息 消息 消息 提交消费线程

提交消费线程

消费线程

消费线程

长轮询批量拉取

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求