IggyRust 编写的持久消息流平台
Iggy是用 Rust 编写的持久消息流平台,支持QUIC、TCP(自定义二进制规范)和 HTTP(常规 REST API)传输协议。目前,它作为单个服务器运行,允许创建流、主题、分区和段,并向它们发送/接收消息。这些消息作为仅附加日志存储在磁盘上,并在重新启动之间保留。
该项目的目标是建立一个分布式流媒体平台(作为集群运行),它将能够水平扩展并每秒处理数百万条消息。
特性:
- 用于消息流的高性能、持久的仅附加日志
- 写入和读取的吞吐量非常高
- 得益于 Rust 编译语言(无 GC),低延迟和可预测的资源使用
- 支持多个流、主题和分区
- 支持多种传输协议(QUIC、TCP、HTTP)
- 完全可操作的 RESTful API,可以选择启用
- Rust 中可用的客户端 SDK(即将推出更多语言)
- 直接处理二进制数据(缺乏强制模式和序列化/反序列化)
- 可配置的服务器功能(例如缓存、段大小、数据刷新间隔、传输协议等)
- 可以在服务器上存储消费者偏移量
- 轮询消息的多种方式:
- 按偏移量(使用索引)
- 按时间戳(使用时间索引)
- 第一条/最后 N 条消息
- 特定消费者的下 N 条消息
- 自动提交偏移量的可能性(例如实现最多一次交付)
- 消费者组提供跨连接客户端的消息排序和水平扩展
- 其他功能,例如服务器端消息重复数据删除
- 内置基准测试应用程序来测试性能
- 单个二进制部署(无外部依赖项)
支持语言 SDK
评论