Hasty Briefsbeta

双语

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开源协议,欢迎贡献代码。