IggyRust 编写的持久消息流平台

联合创作 · 2023-10-01 07:27

Iggy是用 Rust 编写的持久消息流平台,支持QUIC、TCP(自定义二进制规范)和 HTTP(常规 REST API)传输协议。目前,它作为单个服务器运行,允许创建流、主题、分区和段,并向它们发送/接收消息。这些消息作为仅附加日志存储在磁盘上,并在重新启动之间保留。


该项目的目标是建立一个分布式流媒体平台(作为集群运行),它将能够水平扩展并每秒处理数百万条消息。


特性:



  • 用于消息流的高性能、持久的仅附加日志

  • 写入和读取的吞吐量非常高

  • 得益于 Rust 编译语言(无 GC),低延迟和可预测的资源使用

  • 支持多个流、主题和分区

  • 支持多种传输协议(QUIC、TCP、HTTP)

  • 完全可操作的 RESTful API,可以选择启用

  • Rust 中可用的客户端 SDK(即将推出更多语言)

  • 直接处理二进制数据(缺乏强制模式和序列化/反序列化)

  • 可配置的服务器功能(例如缓存、段大小、数据刷新间隔、传输协议等)

  • 可以在服务器上存储消费者偏移量

  • 轮询消息的多种方式:

    • 按偏移量(使用索引)

    • 按时间戳(使用时间索引)

    • 第一条/最后 N 条消息

    • 特定消费者的下 N 条消息


  • 自动提交偏移量的可能性(例如实现最多一次交付)

  • 消费者组提供跨连接客户端的消息排序和水平扩展

  • 其他功能,例如服务器端消息重复数据删除

  • 内置基准测试应用程序来测试性能

  • 单个二进制部署(无外部依赖项)


支持语言 SDK


浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报