04: RobustMQ 产品层面的思考与定位
RobustMQ 是基于 Rust 构建的新一代高性能多协议消息队列。愿景是成为新一代云原生与 AI 原生消息基础设施。它不是简单的"又一个消息队列",而是面向 AI 时代和云原生需求,对消息队列进行的一次重新思考和设计。
自 RobustMQ 项目启动之初,我们便持续审视自身是否陷入技术思维的局限,是否在构建一个缺乏实际业务需求支撑的产品,是否仅仅停留在技术层面的自我满足。
在开发 RobustMQ 的两年时间里,我们收到了诸多质疑:认为我们在"重复造轮子"、"又一个消息队列而已"、"消息队列技术已经成熟,缺乏创新空间"、"技术设想过于宏大,难以实现"。
我们深知,方向选择的正确性决定了一切努力的价值。因此,本文将从产品思维的角度,阐述我们在这段时间的思考与认知。
产品定位
RobustMQ 定位为标准的消息队列产品,与 RocketMQ、Kafka、Pulsar、RabbitMQ 处于同一产品类别。我们的愿景是,在消息队列技术演进的历史中,能够看到这样的脉络:RabbitMQ → Kafka → RocketMQ → Pulsar → RobustMQ。
因此,RobustMQ 的产品定位非常清晰:一个标准的、企业级的消息队列产品。
我们期望在未来,当用户需要选择消息队列时,RobustMQ 能够成为候选清单中的重要选项。用户选择 RobustMQ 的理由包括:
1. 卓越的性能表现
提供高 QPS/吞吐能力和稳定的延迟表现,能够满足流式处理、消息传递、金融交易等多种场景下对性能和吞吐的严苛要求。
2. 多协议兼容能力
兼容主流消息队列协议(MQTT、AMQP、Kafka、RocketMQ 等),降低迁移成本,并在性能、稳定性、成本控制、场景覆盖等方面提供更优的表现。
3. 插件式存储架构
通过插件式存储架构满足不同业务场景的需求。例如,对延迟敏感的场景可使用本地存储,数据量大且对成本敏感的场景可使用远程对象存储,实现存储方案的灵活配置。
4. 统一的技术栈
一套消息队列系统即可满足企业内各种消息中间件场景,无需维护多套异构系统,降低运维复杂度和技术栈管理成本。
5. 云原生弹性能力
具备完整的弹性扩缩容能力,完美适配 Kubernetes 架构,在成本控制和弹性伸缩方面表现更优。
从产品视角来看,RobustMQ 的核心价值定位是成为现有消息队列产品的优化替代方案。通过在稳定性、性能、弹性、成本、场景覆盖、迁移便捷性等维度的综合优势,吸引用户从现有消息队列产品迁移至 RobustMQ。
我们认为,RobustMQ 选择兼容现有协议而非设计新协议,是一个关键的战略决策。设计新的通信协议意味着需要重建整个生态系统,包括 SDK、工具链、社区支持等,工作量巨大且推广困难。而兼容主流协议可以直接复用现有生态,将精力集中在内核优化上,在性能、稳定性、弹性、成本等方面形成差异化竞争力。因此,设计新通信协议将会是 RobustMQ 偏离正确方向的开始。
商业化视角
RobustMQ 自项目启动之初,就坚持开源优先的原则,其目标始终是成为 Apache 顶级项目。但从商业化视角审视,RobustMQ 是否具备实际价值?它的目标用户群体是否会认可其价值?
经过深入分析,我们认为 RobustMQ 在商业层面具有明确的价值定位。其目标用户主要包括两类:To B 服务商和企业客户。
To B 服务商(如云厂商)
当前云厂商的消息队列产品主要采用开源产品托管模式,如托管 Kafka、RabbitMQ、RocketMQ 等。这种模式的优势在于开发成本低、产品稳定、能够快速产生收入。但从长期运营角度来看,存在以下挑战:
1. 差异化困境
开源托管模式难以形成与其他云厂商或用户自建方案的差异化优势,容易陷入资源售卖(CPU/内存)的价格竞争。
2. 二次开发的两难选择
为提高利润率和差异化优势,云厂商通常会对开源产品进行二次开发,但面临以下问题:
- 成本分散问题:如果对每个开源产品都进行二次开发,投入成本巨大且无法形成技术合力;如果只开发部分产品,则难以形成全面的差异化优势,增长空间受限
- 社区分叉风险:二次开发容易与上游社区产生分叉,无法享受社区红利,难以长期维护,最终可能回归社区版本,导致大量投入付诸东流
RobustMQ 的设计理念恰好能够解决这些痛点。其弹性设计、插件化存储、多协议支持、完全开源四大特性,为云厂商提供了理想的解决方案。
以实际场景为例,当 RobustMQ 完成多协议、Serverless、插件化存储等特性后,云厂商可以基于 RobustMQ 适配自有的云存储引擎,满足不同场景和方向的消息队列需求。相比维护多套异构系统,云厂商只需维护一套内核,长期的人力和运维成本将大幅降低,同时更容易通过内核优化形成自身的差异化竞争优势。
企业客户
对于小型企业,在业务场景相对简单的情况下,各类消息队列产品的差异性并不显著。但随着企业规模扩大、业务场景复杂化,通常需要部署多种消息队列。此时,无论是业务方的选型决策,还是基础架构团队的运维管理,成本都非常高昂。
因此,许多企业为提升系统稳定性、降低运维成本、减少人才储备需求,会限制只采用一至两款消息队列产品。
在这种场景下,一款支持多协议、性能优异、稳定可靠、弹性伸缩、能够覆盖多种场景的统一消息队列平台,完美契合企业的实际需求。这正是 RobustMQ 的设计初衷。
核心应用场景
当 RobustMQ 趋于成熟后,我们认为以下两种场景将成为重要的落地方向:
1. All-in-One 统一消息底座
面向云厂商和大型企业,提供一款统一的消息队列平台,满足各种不同场景需求,提升系统稳定性,降低整体投入成本。
2. 现有产品的优化替代
面向对现有消息队列产品在性能、弹性、成本等方面不满意的用户,提供更优的替代方案:
- 对 Kafka 的弹性和成本有更高要求的用户
- 对 MQTT Broker 有更高性能需求的用户
- 对 RabbitMQ 网络分区和性能有顾虑的用户
可以选择 RobustMQ 作为现有方案的替代。
从 0 到 1 的发展路径
面对这样一个技术挑战巨大、愿景宏远的项目,如何完成冷启动?如何推动 RobustMQ 从 0 到 1?
从产品思维的角度,我们规划了清晰的阶段性发展路径:
第一阶段:技术积累
在这个阶段,RobustMQ 的用户即开发者本身。开发团队通过技术追求、开源热情,在项目中获得成就感,通过学习 Rust、分布式存储、提升开源影响力等动力,完成 RobustMQ 的整体架构设计与基础实现。
第二阶段:MQTT 协议突破
在这个阶段,RobustMQ 的目标用户是需要 MQTT 协议的用户群体。选择 MQTT 作为切入点基于以下考量:
1. 技术可行性
MQTT 协议相对轻量简洁,功能清晰明确,是最快能够实现完整 Broker 并体现差异化优势的协议,能够快速验证 RobustMQ 的实际价值。
2. 市场空白
业界目前缺乏性能和架构表现特别优秀的开源 MQTT Broker 解决方案。
3. 市场机遇
EMQX 转向商业化 License 后,开源社区需要一款优秀的替代方案。
第三阶段:多协议生态
在这个阶段,RobustMQ 将覆盖前述所有目标用户群体。通过逐步适配和完善多种协议(Kafka、AMQP 等),不断扩展使用场景,最终实现技术愿景。
当前,我们已经完成第一阶段并进入第二阶段,MQTT 协议的核心功能已基本完成,正在向第三阶段迈进。从产品思维的角度来看,我们已经将 RobustMQ 构建成一个可持续、可坚持的项目。
为什么坚持开源
曾有人询问我们是否计划商业化。我们的回答始终是:不会。我们的目标一直是成为 Apache 顶级项目。
原因在于,RobustMQ 是一个技术挑战巨大、愿景宏远的项目。如果一开始就将其定位为商业化产品,很可能无法真正做好。商业化思维会扭曲技术决策,导致技术选择服务于短期商业目标而非长期技术价值。
基础软件需要持续的琢磨、沉淀、修正、优化。而在商业化压力下,这些必要的技术沉淀可能会变形,走向急功近利。
我们坚信,只有保持 100% 开源,RobustMQ 才能真正实现其技术价值,获得长期成功。
总结
从产品角度来看,RobustMQ 定位为标准的企业级消息队列产品。其核心价值在于通过系统性的技术优化,在性能、稳定性、弹性、成本等多个维度超越现有产品,成为现有消息队列产品的优化替代方案。
RobustMQ 不是"又一个消息队列",而是"一个更好的消息队列"。
基础软件是一段漫长的旅程。我们始终相信,只有拥抱开源、拥抱热爱、拥抱坚持,才能真正做好基础软件。我们一直在探索和调整中前进。期待在未来的某一天,我们能够自信地说:RobustMQ 是一件真正有价值的事。
