- Alternative open source haute performance à Kafka, écrite en Rust
- Plateforme distribuée de streaming de messages construite au-dessus d’un moteur de stockage de logs haute performance, offrant un streaming fiable et le basculement automatique du leader
- Maintien de la cohérence des métadonnées et prise en charge de la reprise après panne via le protocole de consensus Raft
- Partitionnement basé sur des segments pour répartir automatiquement la charge, avec rotation du leadership en round-robin
- Fonctionnalités clés
- Découpage des topics via un sharding par segment, chaque nœud leader de segment étant responsable des écritures
- Write fencing basé sur des leases pour n’autoriser l’écriture qu’à un seul leader et éviter le split-brain
- Rollover automatique qui, lorsque la taille d’un segment est dépassée, propose une modification des métadonnées et effectue le remplacement du leader
- Fonction Sealed Segment Reads permettant de lire directement les anciennes données depuis les répliques
- E/S haute performance basées sur io_uring pour garantir un débit élevé sous Linux
- Protocole client
- Utilise un protocole texte à préfixe de longueur sur TCP
- Les commandes
REGISTER, PUT, GET, STATE, METRICS permettent de créer des topics, d’envoyer et recevoir des messages, et de consulter l’état
- Structure de commandes simple permettant de se connecter à n’importe quel nœud, avec transfert automatique
- Caractéristiques de performance
- Débit d’écriture : performances stables grâce à une architecture à un seul writer par segment
- Débit de lecture : évolue proportionnellement au nombre de répliques
- Latence : en moyenne de l’ordre de 1 à 2 RTT
- Surcharge de consensus minimale : Raft n’est appliqué qu’aux métadonnées, pas au chemin de données
- Comparaison de performances
- Kafka et RocksDB : débit d’écriture et bande passante supérieurs
- Plus de 1,2 million d’opérations par seconde avec
fsync désactivé, et des performances stables d’un niveau comparable même lorsqu’il est activé
- Licence MIT
Aucun commentaire pour le moment.