Apache Iggy 和 RobustMQ 都是用 Rust 编写的 现代消息队列系统,都强调高性能、易扩展和开发者友好。目前Iggy 已经进入Apache基金会,RobustMQ 经常被询问和IGGY 的区别是什么。
注意:RobustMQ 处于开发早期,本文主要从RobustMQ的定位、愿景、产品能力规划来讨论两者的区别。RobustMQ的一些能力还在开发中。本文目标是讲清楚Iggy和RobustMQ的区别,对比基于个人认知的一家之言,存在偏颇,欢迎沟通交流。
总结
定位
IGGY 是一个主打高性能和高吞吐的消息流平台,可以被看作是 Kafka 的替代品。准确说它是一个更简洁、现代化的 Kafka 式消息队列系统。它是有自己新的协议和SDK的新的消息队列平台。
RobustMQ 是一个主打适配当前主流消息队列协议(Kafka/AMQP/MQTT等)、架构上完全 Serverless 的 ALL in One 消息队列。它的目标是兼容当前主流的协议、SDK、生态,通过架构升级(Rust高性能/安全、存/算/调度分离、插件化存储)来解决当前消息队列产品存在的弹性、成本、能力分散等问题。
技术理念
- 架构:IGGY 是存算一体的架构,RobustMQ 是存/算/调度分离、分层架构。RobustMQ 的架构弹性更强。
- 协议和SDK:IGGY 有自己的私有协议,需要开发对应的多语言SDK。RobustMQ 不会涉及私有协议和独立SDK。
- 存储层: IGGY 是本地Append Log的存储,RobustMQ 是插件化支持存储,允许支持HDFS、S3、MinIO、内存、本地文件存储等多种存储方式。RobustMQ 灵活度更高,弹性更强。
- 用户接入:用户使用IGGY需要使用IGGY对应的SDK,用户使用RobustMQ 只需要使用开源的Kafka/AMQP/MQTT SDK 即可。用户接入RobustMQ的成本更低。
- 生态兼容:IGGY 需要搭建新的生态,用户去适应IGGY的生态。RobustMQ 完整适配当前的主流消息队列的生态和工具,用户适应成本几乎为零。
核心设计理念对比
Iggy 的设计理念:
- 简洁但现代化的 Kafka 替代品
- 更轻量,更适合嵌入或自托管
- 避免 ZooKeeper/KRaft 的复杂性
- 专注在性能和 Rust 安全生态
RobustMQ 的设计理念:
- 统一多协议、多消息模型的企业消息中枢
- 一套系统适配 Kafka / MQTT / AMQP 等协议
- 支持复杂部署场景(云边协同、存算分离)
- 更像现代化的 “企业 Service Bus”
一览对比表
特性 / 项目 | Apache Iggy | RobustMQ |
---|---|---|
语言实现 | Rust | Rust |
定位 | Kafka 替代品(现代、轻量) | 多协议统一消息中枢 |
协议支持 | 自有协议(轻量级)、TCP、HTTP | Kafka / AMQP / MQTT 等多协议兼容 |
SDK | IGGY SDK | Kafka / AMQP / MQTT 开源 SDK |
主题与分区 | 支持 Topic/Partition | 支持 Topic/Partition(细粒度控制) |
存储层 | 本地文件存储(append log) | 插拔式(支持本地文件存储、S3、MinIO、内存等) |
架构设计 | Leader-Follower,面向流式处理 | 分层架构(存储/计算/调度分离,灵活扩展) |
分布式能力 | 实验性(集群化初步支持) | 完整的分布式能力,支持动态扩容、主从同步 |
性能优化 | 内存映射文件,Rust 优化 | 内存映射文件,Rust 优化 |
消息模型 | 类 Kafka(主题 + offset) | 统一消息模型(支持 Pub/Sub、队列、延时等) |
使用场景 | 高吞吐日志流处理,Kafka 替代 | 多源异构系统集成,边缘计算,IoT,微服务 |
功能 | 主打吞吐 | 支持广播消息、私信消息、优先级消息等等高级消息能力 |
生态 | IGGY 生态中的 CLI、HTTP、SDK等 | 兼容Kafka / AMQP / MQTT的所有生态 |
成熟度 | 中(活跃开发中) | 中(活跃开发中) |
用户使用成本 | 高(业务需要切换IGGY生态) | 低(兼容主流消息协议,业务不需要改动) |
开源协议 | Apache 2.0 | Apache 2.0 |