- Rustで書かれた高性能なKafka代替オープンソース
- 高性能ログストレージエンジンの上に構築された分散メッセージストリーミングプラットフォームで、安定したストリーミングと自動リーダー交代機能を提供
- Raftコンセンサスプロトコルによりメタデータの一貫性を維持し、障害復旧を支援
- セグメントベースのパーティショニングで負荷を自動分散し、リーダーシップをラウンドロビン方式でローテーション
- 主要機能
- セグメント単位のシャーディングでトピックを分割し、各セグメントごとのリーダーノードが書き込みを担当
- リースベースの書き込みフェンシングにより単一リーダーのみ書き込み可能とし、スプリットブレインを防止
- 自動ロールオーバーによりセグメントサイズ超過時にメタデータ変更提案とリーダー交代を実行
- Sealed Segment Reads機能により過去データをレプリカから直接読み取り可能
- io_uringベースの高性能I/OでLinux環境における高スループットを確保
- クライアントプロトコル
- TCPベースの長さプレフィックス付きテキストプロトコルを使用
REGISTER, PUT, GET, STATE, METRICSコマンドでトピック作成、メッセージ送受信、状態照会をサポート
- シンプルなコマンド構造によりどのノードにも接続可能で、自動フォワーディングを処理
- 性能特性
- 書き込みスループット: セグメントごとの単一ライター構造で安定した性能を維持
- 読み取りスループット: レプリカ数に比例して拡張
- レイテンシ: 平均1〜2 RTT水準
- コンセンサスオーバーヘッド最小化: データパスではなくメタデータにのみRaftを適用
- 性能比較
- Kafka、RocksDBと比べて高い書き込みスループットと帯域幅
- fsync無効時は毎秒120万件以上、有効時でも同水準の安定した性能を維持
- MIT License
まだコメントはありません。