百万用户,一人一 Topic:百炼资产中心用 RocketMQ LiteTopic 实现隔离与限流

简介: 当业务的并发单元是“用户”时,消息系统的治理单元也应该是“用户”。RocketMQ LiteTopic 把“百万用户 × 各自一条消息流”的业务模型直接变成消息系统的原生原语,整个过程中业务侧没有自建任何路由层与限流层。

作者:张世杰(靖泉)


海量用户,每人一条消息流,随时可能爆发的单用户流量风暴——这是百炼资产中心面对的消息链路。用户在百炼生成的图片、视频默认临时保存,要沉淀为长期资产,每条消息都要可靠处理。百炼资产中心的答案是 RocketMQ LiteTopic(轻量主题):一个用户一个 Topic。在传统 MQ 的经验里这近乎禁忌,而 LiteTopic 让它成为默认做法。

从临时链接到长期资产:资产中心要解决什么

用户在百炼平台调用模型生成图片、视频后,产物存放在 OSS 临时目录,过期即清理,只提供临时下载链接。但用户有两类长期诉求:

  • 持久保存: 生成结果需长期留存为个人数字资产;
  • 素材复用: 已生成的内容和上传的图片,可作为后续再创作的输入素材反复调用,免去重复上传。


资产中心服务因此而生:统一管理用户生成及上传的图片、视频、音频资产,对每一份产物完成安全检测等处理后持久化落库。这条处理链路要求消息可靠消费。

一条天然按用户组织的消息链路

资产中心选择了消息驱动的架构,整条链路分为生产与消费两段:

  • 生产侧: 模型生成图片/视频后写入 OSS 临时目录,随后发送消息——消息体携带资源元数据和 OSS 位置索引,不传文件本身;
  • 消费侧: 资产中心消费消息并依次处理:白名单校验、内容安全检测(违规内容机器审核),最终把资产持久化落库。

这条链路的特征决定了它对消息系统的要求:消息量大、需要可靠消费——而更关键的是,这条消息流天然是按用户组织的。

传统 Topic 接不住“按用户组织”的消息流

每个用户的资产相互独立:要单独做安全审核、单独控节奏,重度用户批量生成大量内容时,也不能拖累其他用户的入库进度。这推出三项治理诉求:

  • 用户级隔离: 单用户堆积、异常不阻塞他人;
  • 用户级限流: 限流阈值按用户单独设置,而非全局一刀切;
  • 用户级挂起: 触发限流时只暂停该用户的消费,而不是全体。


而传统 Topic 的隔离单元是队列而非用户:

  • 所有用户共享同一组队列,单用户风暴下消费线程被他的消息占满,其余用户的资产入库全部排队等待;
  • 只能全局限流,无法区分用户;
  • 消费挂起的粒度是整个消费组——要停一个用户,就得停所有人。

想补齐,就得在 Topic 之上自建用户路由层和用户级限流,等于在 MQ 之上再造一套 MQ。


问题的本质是:业务的并发单元是“用户”,而传统 Topic 的隔离单元是“队列”,两者错位,所有治理都得靠业务代码补齐。

LiteTopic:把“用户”变成消息系统的原生隔离单元

LiteTopic(轻量主题)是 RocketMQ 5.x 引入的轻量级队列形态:单 Broker 支撑百万级队列,运行时按需创建、按 TTL 自动回收,同一消费组下不同实例可订阅不同的队列子集。

它把 “百万用户 × 各自一条消息流” 的业务模型直接变成消息系统的原生原语,上述三项诉求恰好逐一对应:

落到用法上:

  • 发送侧按用户写入对应 LiteTopic,不存在时由 Broker 自动创建,无需预建和维护清单;
  • 消费侧一次通配符订阅覆盖全部用户,新用户接入零改动;
  • 限流侧在消费回调中返回挂起指令,Broker 在指定时长内只停止该 LiteTopic 的投递。


整个过程中,业务侧没有自建任何路由层与限流层。

落地效果

对资产中心而言,价值落在三点:

  • 架构简化: 用户隔离、限流、挂起由消息系统原生提供,业务方零开发成本获得多租户治理能力;
  • 稳定性: 用户间故障域隔离,单个重度用户的流量风暴通过“限流 + 定向挂起”自动降压,不影响整体 SLA;
  • 增长零改造: 用户与资产规模增长,无需预建队列、无需调整订阅,链路随业务自然扩展。

同一个原语,两种用法

此前百炼网关用 LiteTopic 重构了大模型限流(见《限流比降 10 倍:百炼网关如何用 RocketMQ LiteTopic 重构大模型限流》一文),那是把它当作分布式漏桶;资产中心这次则用它做用户级消息治理——同一个原语,两种用法,验证的都是同一件事:当业务的并发单元是“用户”时,消息系统的治理单元也应该是“用户”。


如果你的业务同样是“海量用户 × 轻量消息”的形态,不妨把用户路由和限流层从业务代码里拿掉,交给 RocketMQ LiteTopic。


🔗 加入 RocketMQ for AI 钉钉交流群,交流 LiteTopic 实践经验、获取最新动态:

image.png

钉钉群号:110085036316

📖 点击此处了解 RocketMQ for AI 完整方案。

相关文章
|
3月前
|
消息中间件 算法 Java
百炼网关实践:用 RocketMQ LiteTopic 让限流比降了 10 倍
LiteTopic 提供的 “轻量队列 + 差异化订阅 + Suspend 控速” 三件套,让百炼网关的限流比降低了 10 倍。
386 20
|
1月前
|
消息中间件 人工智能 Apache
Apache RocketMQ 面向 AI 演进:LiteTopic 支撑百万级多 Agent 会话协作
本文整理自 Apache 2026 技术分享《面向 AI 的 Apache RocketMQ:多 Agent 系统的可靠协作机制》。
233 16
|
1月前
|
消息中间件 SQL 人工智能
实时上下文:当模型能力趋于充裕,AI 生产化的瓶颈正移向实时数据链路
8 月 28 日,由极客传媒 InfoQ、阿里云和 IBM 联合举办的「AI 实时数据沙龙 · 上海站」上,三位来自阿里云和 IBM 的一线工程师围绕这条链路做了分享:一场讲数据流平台面向 AI 的整体演进,另两场分别落到阿里云消息队列 Confluent 版(ApsaraMQ for Confluent)和云消息队列 Kafka 版(ApsaraMQ for Kafka)两款产品的演进与实践。三场分享层层承接,给出的判断是一致的:当模型能力趋于充裕,AI 生产化的瓶颈正移向实时数据链路。
176 11
|
26天前
|
JSON Prometheus 运维
周五 21:47,checkout 又慢了:云监控 MCP 想接住的那二十分钟
阿里云云监控 MCP Cloud 正式发布,提供近 200 项工具,Agentic 能力再进一步:让 Agent 直接查询与管控用云可观测,守护应用稳定运行。
239 17
|
1月前
|
消息中间件 人工智能 自然语言处理
从钉群提问到任务交付:团队级 Agent 基础设施全链路实践
依托钉群无人值守、跨群会话记忆、组织知识检索及前端专业 Skill,云原生消息前端团队自研的内部研发协作平台 Domino 正经历关键演进——从单一的代码执行工具,升级为能够理解团队上下文、持续沉淀演进并闭环真实交付的研发 Agent 系统。
316 10
|
26天前
|
存储 数据采集 人工智能
一本 Agent 白皮书,值得连续写两年么?
Alibaba Cloud AI Agent Handbook 即将开源。
|
1月前
|
算法 数据挖掘 Shell
经验自进化:自动挖掘经验资产,消融实验验证真实收益丨AgentLoop 数据飞轮实践(五)
本文介绍AgentLoop经验自进化实践:从运行轨迹自动挖掘成功与失败模式,经Skill召回并注入上下文。文章详解接入验证流程,并通过消融实验优化召回策略,降低耗时、成本、Token消耗和工具调用,让Agent持续迭代。
324 14
|
1月前
|
算法 自动驾驶 安全
AgentLoop 数据飞轮实践(一):总览 —— 让 Agent 持续调优的闭环
Agent 上线的那一刻,真正的考试才开始:上线只是起点,持续调优才是关键。本文用一小时实操带你看 AgentLoop 如何把接入、评估、实验、经验库串成数据飞轮,以专家驱动与全自动经验挖掘,让 Agent 越转越聪明。
470 19
|
1月前
|
存储 人工智能 Prometheus
AI Agent 时代,需要的不是更多数据,而是一个语义层
AI Agent 缺的不是数据而是系统地图。UnifiedModel 开源语义层将资产、数据与关系组织为可查询对象图,实验显示旗舰模型准确率提升 10-20%。它助 Agent 按对象读数、沿关系定位根因,真正看懂复杂系统。
333 11
|
1月前
|
数据采集 人工智能 监控
数据飞轮的起点:四种方式把 Agent 连进 AgentLoop丨AgentLoop 数据飞轮实践(二)
本文介绍AgentLoop基于OTel协议与探针的数据接入体系,涵盖通用Agent一键接入、框架SDK集成、高代码注解埋点和eBPF无侵入四种方案,并以客服Agent为例,演示旁路采集、配置生效及观测页验证的完整链路。
235 11