Show HN: Walrus – a Kafka alternative written in Rust
3 months ago
- #raft-consensus
- #message-streaming
- #distributed-systems
- Walrus是一个高性能日志存储的分布式消息流平台。
- 关键特性包括自动负载均衡、通过Raft共识实现的容错机制,以及在Linux上使用io_uring的高性能存储。
- 生产者和消费者可连接任意节点,请求会自动路由到分段领导者节点。
- 每个节点由节点控制器、Raft引擎、集群元数据和桶式存储组件构成。
- 系统采用基于TCP的简单长度前缀文本协议进行客户端交互。
- 主题被分割为多个段,每个段有专属写入领导者节点,段滚动时领导权自动轮换。
- 基于Raft复制元数据的租约机制确保写入一致性,防止脑裂场景。
- 密封段支持从任意副本读取历史数据,无需数据迁移。
- 完整测试套件涵盖基础操作、段滚动、弹性测试、恢复测试、压力测试及多主题场景测试。
- 性能基准测试显示Walrus在吞吐量和带宽上优于Kafka和RocksDB。
- 包含用于分布式数据平面正确性建模的TLA+形式化规范。
- Walrus核心存储引擎可作为独立Rust库嵌入使用。
- 项目采用MIT开源协议,欢迎贡献代码。