消息队列驱动 AI 应用,Coze 正式集成 Pulsar
可以预期,随着 AI 应用的进一步发展,会对消息处理的延迟、并发、扩容的便捷性和成本考量提出新的严苛要求,而这些都是 Pulsar 的传统优势。在用户量激增时,扩容往往需要 20-30 分钟,这对实时性要求很高的 AI 应用来说是不可接受的。Coze Studio 集成 Apache Pulsar,不仅仅是为了解决大规模应用场景的性能问题,更是为了应对 AI 应用未来的发展需求。初期阶段,对大多数

近日,字节跳动开源的 AI 应用开发平台 Coze Studio 发布了一个更新(PR #2019:https://github.com/coze-dev/coze-studio/pull/2019),正式支持 Apache Pulsar 作为消息队列。
这个消息本身并不算重大新闻,但它反映了一个值得思考的趋势:AI 应用对基础设施的要求正在发生变化。

AI 应用带来的新问题
)
01
要理解这个选择,需要先了解 AI 应用与传统 Web 应用的区别。
传统的 Web 应用,用户点击一个按钮,服务器处理请求,返回结果。整个过程通常在几十毫秒内完成,逻辑相对简单。
AI 应用不同。用户发送一条消息给 AI 助手,背后可能触发一系列复杂的操作:
-
文本预处理和意图识别
-
知识库检索和向量匹配
-
大模型推理和结果生成
-
工具调用和外部 API 集成
-
对话历史更新和状态管理
每个步骤的处理时间差异很大。文本处理可能只需要几毫秒,但大模型推理可能需要几秒钟。如果用户上传了图片或语音,处理时间会更长。
这种复杂性对消息队列提出了新的要求。
传统方案的局限
)
02
Coze Studio 默认使用的是 NSQ,这是一个简单可靠的消息队列。初期阶段,对大多数应用来说,NSQ 是尚可的选择。
但随着用户规模增长,问题开始显现:
-
扩容困难:NSQ 的分布式扩容需要手动调整拓扑结构。在用户量激增时,扩容往往需要 20-30 分钟,这对实时性要求很高的 AI 应用来说是不可接受的。
-
资源浪费:传统消息队列将存储和计算绑定在一起。为了满足计算需求,往往需要过度配置存储资源,造成成本浪费。
-
隔离性不足:企业客户对数据隔离有严格要求,但 NSQ 只能通过 Topic 进行隔离,安全性有限。
这些问题在传统应用中可能不明显,但在 AI 应用的高并发、多租户场景下就成了瓶颈。
Pulsar 的优势
)
03
Pulsar 最初由 Yahoo 开发,早在 2018 年已经成为 Apache 顶级项目,目前是云原生消息队列的首选 。它的设计理念与传统消息队列有本质区别。
1
存储计算分离:Pulsar 将消息存储(BookKeeper)和消息处理(Broker)完全分离。这意味着可以根据实际需求独立扩展存储和计算资源。在 AI 应用中,这个特性特别有价值。推理高峰期需要大量计算资源处理请求,但存储需求相对稳定。分离架构让资源配置更加灵活。
2
多租户支持:Pulsar 提供了 Tenant -> Namespace -> Topic 三级隔离模型。不同企业客户可以分配到不同的 Tenant,实现真正的数据隔离。
3
强顺序性保障:Pulsar 提供强一致性的消息顺序保证,确保 Agent 工作流中的步骤按正确顺序执行,避免状态混乱和数据不一致
4
自动化运维:Pulsar 支持快速扩容、自动负载均衡、故障自动转移无需数据搬迁等。这大大降低了运维复杂度,对于快速发展的 AI 应用来说非常重要。

可以预期,随着 AI 应用的进一步发展,会对消息处理的延迟、并发、扩容的便捷性和成本考量提出新的严苛要求,而这些都是 Pulsar 的传统优势。
技术实现
)
04
Coze Studio 的集成方式值得学习。他们使用工厂模式设计了消息队列的抽象层:
switch mqType {case"nsq": return nsq.NewProducer()case"kafka": return kafka.NewProducer() case"rmq": return rmq.NewProducer()case"pulsar": return pulsar.NewProducer()}
这种设计让开发者可以根据需求选择不同的消息队列实现,而不需要修改业务代码。
配置也很简单:
COZE_MQ_TYPE=pulsarMQ_NAME_SERVER=pulsar://pulsar:6650PULSAR_JWT_TOKEN=your-jwt-token
三行环境变量就可以启用 Pulsar 支持。
启动会 coze 会在 Pulsar 默认命名空间下生成 opencoze_knowledge,opencoze_search_app 和opencoze_search_resource 的三个topic 用于内部通信,如下图所示:

如何开始
)
05
如果你对这个集成感兴趣,可以从 GitHub 获取源代码:
git clone https://github.com/coze-dev/coze-studio.git
项目提供了完整的文档和示例,你可以在几分钟内搭建一个包含 Pulsar 在内的应用环境。

思考
)
06
技术选择往往反映了对未来的判断。
Coze Studio 集成 Apache Pulsar,不仅仅是为了解决大规模应用场景的性能问题,更是为了应对 AI 应用未来的发展需求。
在这个 AI 快速发展的时代,基础设施的选择变得越来越重要。那些能够适应 AI 应用特点的技术,将在竞争中占据优势。
这是一个值得关注的信号。
参考资料:
-
Apache Pulsar: https://pulsar.apache.org/
-
coze-studio: https://github.com/coze-dev/coze-studio
-
feat: add Apache Pulsar EventBus implementation #2019: https://github.com/coze-dev/coze-studio/pull/2019
-
Pulsar EventBus 集成指南: https://github.com/coze-dev/coze-studio/blob/main/docs/pulsar-eventbus-integration-guide.md

Apache Pulsar 作为一个高性能、分布式的发布-订阅消息系统,正在全球范围内获得越来越多的关注和应用。如果你对分布式系统、消息队列或流处理感兴趣,欢迎加入我们!
Github:
https://github.com/apache/pulsar

扫码加入 Pulsar 社区交流群
最佳实践
互联网
腾讯BiFang | 腾讯云 | 微信 | 腾讯 | BIGO | 360 | 滴滴 | 腾讯互娱 | 腾讯游戏 | vivo | 科大讯飞 | 新浪微博 | 金山云 | STICORP | 雅虎日本 | Nutanix Beam | 智联招聘
金融/计费
腾讯计费 | 平安证券 | 拉卡拉 | Qraft | 甜橙金融
电商
Flipkart | 谊品生鲜 | Narvar | Iterable
机器学习
物联网
云兴科技智慧城市 | 科拓停车 | 华为云 | 清华大学能源互联网创新研究院 | 涂鸦智能
通信
教育
推荐阅读
免费可视化集群管控 | 资料合集 | 实现原理 | BookKeeper储存架构解析 | Pulsar运维 | MQ设计精要 | Pulsar vs Kafka | 从RabbitMQ 到 Pulsar | 内存使用原理 | 从Kafka到Pulsar | 跨地域复制 | Spring + Pulsar | Doris + Pulsar | SpringBoot + Pulsar

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)