项目起源
2023 年 10 月写下第一行代码。当时有两个目的:
- 学习 Rust 语言。Rust 是一个门槛较高的语言,需要不断在实战中去学习和融会贯通,当时没有找到合适的项目,所以决定自己写一个。
- 探索 Rust 在消息队列领域的应用。消息队列领域的开源组件都会存在一些问题。希望从新造一个轮子,在没有历史包袱的基础上,尝试看看能不能解决这些问题。
关于 License
Apache License 2.0,我们的目标是进入 Apache 基金会。超级酷的~。
现在消息队列组件在做的一些事情
当前主流消息队列组件在做的一些事情:
- 存算分离:解决系统的弹性扩缩容问题。
- 多协议(消息和流的融合):解决多种场景需要适配多种协议,用户切换协议客户端改造成本高的问题。
- 去元数据依赖:当前主流消息队列架构上会依赖 Zookeeper 等元数据组件,但是因为元数据组件本身的复杂度和稳定性,也导致了消息队列的稳定性和可用性问题。
- 分层存储:希望降低存储成本,把一些冷数据存储到成本更低的存储中,比如 S3、HDFS 等等。
- 适配不同存储引擎:在不同的场景下,可能需要适配不同的存储引擎,比如 S3、HDFS、内部自建的存储引擎等等。
在做这些事情的过程中,我们发现了两类问题:
- 原生架构的缺陷导致改造复杂度过高,需要投入大量的人力物力,收益太低。
- 改造完后无法和社区兼容,无法跟进社区的演进,长期下来无法维护。
- 每家公司都会有自己的改造版本,无法形成统一和合力,重复投入。
我们希望我们是什么样子
- 是一个单纯的消息队列组件,做好消息队列核心功能之前,不会花费精力去做任何周边的事情。
- 是一个全平台的消息队列,能够适配各种主流消息队列协议,从而能够支持各种场景。
- 是一个具备完整 Serverless 能力的消息队列,具备完全弹性的能力,能够支持无感知的水平扩容和水平缩容。
- 是一个具备插件式存储能力的消息队列,能够支持不同场景下的存储需求,通过配置即可切换不同的存储引擎,比如 S3、HDFS、Bookeeper等等。
- 是一个高性能的、稳定的、可靠的消息队列,能够支持大量的连接、QPS、吞吐。
和现有消息队列的区别
当前还不敢说有区别,致敬社区。但是在我们不断的尝试过程中,一定能够做出一款比当前开源组件更优秀的消息队列产品。
长期来看我们会有竞争力吗
肯定有的好不,绝对有信心。
结合当前Rust、云原生、AI 等领域的发展,不断整合和学习,在没有历史包袱的基础上。我们有绝对的信心能够打造一个具备竞争力的AI 时代的消息队列产品。
核心关键词是: 多协议、Serverless、插件式存储。 即:
基于 Rust 语言打造一个支持多协议,架构上支持完整 Serverless 能力,具备插件式存储能力的消息队列产品。
这个定义会不断的优化,接下来会探索 MQ 和 AI 的结合。以及在金融级 Message Queue 有一些探索。
期望
希望我们站在巨人的肩膀上,抬头看天,低头走路,安心做事,打造一个最好的 MQ Infra 组件。