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

浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报