Types de RPC
Le tag d'une trame détermine le type de RPC. Chaque payload est un type openraft sérialisé avec postcard.
| tag | Nom | Payload requête | Payload réponse | Rôle |
|---|---|---|---|---|
1 | Vote | VoteRequest | VoteResponse | Élection du leader — un candidat demande le vote des autres nœuds |
2 | AppendEntries | AppendEntriesRequest | AppendEntriesResponse | Réplication du journal + battement de cœur — le leader propage les commandes répliquées aux suiveurs |
3 | FullSnapshot | un tuple (Vote, SnapshotMeta, snapshot_bytes) | SnapshotResponse | Envoie le snapshot complet à un nœud pris de retard |
- Vote — quand le leader meurt, un nœud dont le battement de cœur s'est arrêté devient candidat et demande des votes ; le nœud qui obtient une majorité devient le nouveau leader.
- AppendEntries — le leader transporte les commandes de verrou à valider comme entrées de journal. Un AppendEntries sans entrée est le battement de cœur — il n'existe pas de message de battement de cœur séparé.
- FullSnapshot — envoie l'intégralité de l'état actuel à un nœud trop en retard pour rattraper via le journal (ou qui vient de rejoindre le cluster). Envoyé en entier, en une seule trame, sans streaming.
Flux — quand le leader meurt
Nœud A
Nœud B
Nœud C
détecte la disparition du battement de cœur du leader → devient candidat
Vote · demande de vote
Vote · demande de vote
oui
majorité incluant lui-même → nouveau leader
AppendEntries (aucune entrée = battement de cœur)
AppendEntries (aucune entrée = battement de cœur)
RPC de consensus (Raft)
Dès que le premier battement de cœur du leader nouvellement élu arrive, le cluster revient à un service normal — l'écart total est habituellement de 0,5 à 1 seconde. Voir les Commandes répliquées pour le flux AppendEntries (réplication du journal) en fonctionnement normal.
Terminologie
- Réplication du journal (log replication) — le leader transforme ses commandes décidées en un journal ordonné et fait en sorte que les suiveurs l'enregistrent à l'identique. Appliquer le même journal dans le même ordre amène chaque nœud au même état.
- Battement de cœur (heartbeat) — un signal périodique « je suis vivant ». Quand il s'arrête, les suiveurs concluent que le leader est mort et déclenchent une élection.