为什么会有 RobustMQ
起源
2023 年 10 月,写下第一行代码。
最初的动机很简单:学习 Rust。Rust 是一门门槛很高的语言,必须在实战中才能真正掌握。找来找去,没有找到合适的项目,于是决定自己写一个消息队列。
选消息队列,是因为它足够复杂——网络、并发、存储、协议,每一块都是 Rust 最适合发力的地方。这个项目从一开始就不是为了商业化,而是想做一件技术上值得做的事。
看到的问题
在消息队列领域深耕多年,对这个领域的现状看得很清楚:确实有一些结构性的问题长期没有被解决。
历史包袱太重。 Kafka 诞生于 2011 年,架构基于文件系统,Topic 数量受文件句柄限制,万级 Topic 就是天花板。RabbitMQ 用 Erlang 写的,并发模型很特别但性能上限有限。这些系统在设计之初就没有考虑过 AI 时代的需求,后来的改造都是在原有架构上打补丁,改造复杂度高、收益低、还容易和社区脱节。
场景割裂。 IoT 用 MQTT,大数据用 Kafka,企业系统用 AMQP,AI Agent 通信没有原生方案——多套协议,多套系统,多套运维。数据要在不同系统之间流转,中间需要各种桥接层,每一层都是延迟和故障点。没有一个系统真正把这些场景统一起来。
部署门槛高,无法覆盖所有场景。 现有消息系统普遍依赖外部组件——Kafka 需要 ZooKeeper 或 KRaft,RabbitMQ 依赖 Erlang 运行时,RocketMQ 需要 NameServer 单独部署。启动一套系统少则两三个进程,多则五六个,内存动辄几百 MB 起步。这样的系统在云端服务器上可以接受,但在边缘网关、IoT 设备这类资源受限的环境里根本跑不起来。运维复杂度和学习成本也居高不下,配置一套高可用集群对很多团队来说就是一个长期负担。消息系统应该是基础设施,而不是本身就成为一个需要专人维护的复杂系统。
AI 时代没有对应的基础设施。 AI Agent 的大规模协作需要百万级独立通信通道,现有消息系统的 Topic 上限是硬伤。边缘设备到云端的数据链路需要跨协议互通,现有方案要么是多套系统拼接,要么是路由引擎转发——数据要复制多份,延迟和成本都上去了。这些新场景,现有系统都没有从根本上解决。
这些问题不是小问题,是架构层面的缺陷。修补没有意义,需要从头设计。
我们想做什么
一个从一开始就为 AI 时代统一设计的数据通信基础设施,而不是在老架构上凑合。
具体来说,RobustMQ 想做到:
极简架构,固定边界。 三个组件:Meta Service 管元数据、Broker 处理协议、Storage Engine 存数据。组件边界清晰,不会因为支持新协议或新存储而变形。加一个新协议只需要实现 Broker 层的解析逻辑,加一个新存储只需要实现 Storage Engine 的接口。核心架构不动。
多协议统一,一份数据。 MQTT、Kafka、NATS、AMQP 跑在同一套存储层上,数据只存一份,不同协议提供不同的访问视角。IoT 设备用 MQTT 写入,大数据平台用 Kafka 消费,AI Agent 用 NATS 通信,企业系统用 AMQP 接入——不需要任何桥接层,一条消息,任意协议消费分发。
边缘到云端统一部署。 单一二进制,无外部依赖,极小内存占用。同一套系统既能跑在边缘网关上做断网缓冲,也能跑在云端集群处理大规模数据流,从边缘到云端统一的运维体验。
AI Agent 通信原生支持。 基于 NATS 协议扩展的 $mq9.AI.API.* Subject 空间,提供 Agent 注册、发现、调用、编排的原生通信能力。百万级轻量 Topic,每个 Agent 独立通信通道,不受传统消息系统 Topic 数量限制。
用 Rust 做。 零成本抽象、内存安全、无 GC 停顿。通信基础设施对延迟稳定性要求极高,GC 带来的内存波动在边缘场景尤其致命。Rust 是这个领域最合适的语言选择。
我们怎么做
慢就是快,克制且聚焦。
第一步,把 MQTT 做到极致,成为业界最好的 MQTT Broker,用这个过程打磨架构、代码和工程理念。第二步,探索 NATS 与 AI Agent 通信的结合,用 AI 场景定义未来的通信方式。第三步,推进 Kafka 兼容,打通从 IoT 设备到流数据管道的核心链路,让边缘到云端的数据流动成为现实。AMQP 的传统消息场景放在最后,有机会再说。
不分散,不跟风,每一步都走扎实。
这是什么样的项目
技术信仰驱动。 相信用 Rust 重新设计通信基础设施是正确的方向,相信 AI 时代需要一套真正为新场景设计的消息系统,相信优秀的基础软件应该属于整个社区。不是因为有商业回报才做,是因为觉得这件事值得做。
做这个项目没有捷径,一步一步来。抬头看天,低头走路。
现在到哪了
从 2023 年 10 月第一行代码,到现在的 0.3.0 版本:架构重新设计了,MQTT 核心功能趋于完整,监控、CLI、Dashboard 等工具配套齐全。还有很多没有做好的地方,Kafka 协议还在开发中,NATS 和 AMQP 还在规划,性能和稳定性还有很大优化空间。
但方向是清晰的,架构是稳的,初心没有变。
