Ticketing
Documentation

L · Avis de leader

Structurerefresh

Ce n'est pas la réponse à une requête, mais un avis que le serveur envoie de lui-même (cluster uniquement). Lorsqu'il détecte que le leader Raft a changé, le nœud envoie une fois l'adresse client du nouveau leader à tous les clients qui lui sont connectés.

En quoi cela diffère de M

M · RedirigéL · Avis de leader
NatureRéponse à une requêteAvis émis par le serveur (sans lien avec une requête)
Signification« cette requête ne peut pas être traitée ici »« le leader a changé » (information)
ConnexionFermer et se reconnecter au nouveau leaderMaintenue — seul l'indice est mis à jour
Ce nœudN'est certainement pas le leaderPeut justement être le nouveau leader

Ne fermez pas la connexion à la réception d'un L. Il est fréquent que le nœud qui a envoyé l'avis soit précisément le nouveau leader, et des requêtes doivent encore transiter par cette connexion.

Pourquoi c'est nécessaire

Sans cet avis, le client n'apprend le changement de leader qu'en envoyant une requête et en se faisant renvoyer un M. L supprime cet aller-retour : la première requête après le basculement part déjà directement vers le nouveau leader.

Les clients de versions anciennes qui ne connaissent pas cet op peuvent l'ignorer sans que le fonctionnement en souffre — seules les performances reviennent au niveau antérieur à l'avis (requête → M → nouvel essai).

Notation des octets : op est un caractère ASCII, et addr est du texte UTF-8 (longueur variable, notée N dans la structure). Le \n final est 0A.

Flux

Client
Nœud connecté
Nouveau leader
l'élection a changé le leader
L · leader (adresse du nouveau leader)
met seulement à jour l'indice — la connexion est maintenue
la requête suivante va directement au nouveau leader
A · acquis (token)
requêteréponse

En mode serveur unique, la notion de leader n'existe pas : cet avis n'est donc pas envoyé. Pour le comportement complet du cluster, voir Protocole (Cluster).