近日,字节跳动开源的 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 应用特点的技术,将在竞争中占据优势。

这是一个值得关注的信号。

参考资料:

  1. Apache Pulsar: https://pulsar.apache.org/

  2. coze-studio: https://github.com/coze-dev/coze-studio

  3. feat: add Apache Pulsar EventBus implementation #2019: https://github.com/coze-dev/coze-studio/pull/2019

  4. 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 

机器学习

腾讯Angel PowerFL | Discord

物联网

云兴科技智慧城市 | 科拓停车 | 华为云 | 清华大学能源互联网创新研究院 | 涂鸦智能

通信

江苏移动 | 移动云 

教育

网易有道 | 传智教育

推荐阅读

免费可视化集群管控 | 资料合集 | 实现原理 | BookKeeper储存架构解析 | Pulsar运维 | MQ设计精要 | Pulsar vs Kafka | 从RabbitMQ 到 Pulsar | 内存使用原理 | 从Kafka到Pulsar | 跨地域复制 | Spring + Pulsar | Doris + Pulsar | SpringBoot + Pulsar 

图片

Logo

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

更多推荐