Ticketing
Documentação

L · Aviso de Líder

Estruturarefresh

Não é a resposta a uma requisição, e sim um aviso que o servidor envia por conta própria (apenas em cluster). Ao detectar que o líder do Raft mudou, o nó envia uma vez o endereço de cliente do novo líder a todos os clientes conectados a ele.

Qual a diferença para o M

M · MovidoL · Aviso de Líder
NaturezaResposta a uma requisiçãoAviso enviado pelo servidor (sem relação com requisições)
Significado"esta requisição não pode ser processada aqui""o líder mudou" (informação)
ConexãoFechar e reconectar ao novo líderManter — atualiza só a dica
Este nóCertamente não é o líderPode ser justamente o novo líder

Não feche a conexão ao receber um L. É comum que o nó que enviou o aviso seja exatamente o novo líder, e ainda há requisições a trafegar por aquela conexão.

Por que isso é necessário

Sem esse aviso, o cliente só descobre que o líder mudou enviando uma requisição e sendo rebatido com M. O L elimina essa ida e volta, fazendo a primeira requisição após o failover já ir direto ao novo líder.

Clientes de versões antigas, que não conhecem este op, podem ignorá-lo sem prejuízo ao funcionamento — apenas o desempenho volta ao nível anterior ao aviso (requisição → M → nova tentativa).

Notação de bytes: op é um caractere ASCII, e addr é texto UTF-8 (comprimento variável, mostrado como N na estrutura). O \n final é 0A.

Fluxo

Cliente
Nó conectado
Novo líder
a eleição trocou o líder
L · líder (endereço do novo líder)
atualiza só a dica de líder — a conexão é mantida
a próxima requisição já vai direto ao novo líder
A · concedido (token)
requisiçãoresposta

No modo de servidor single não existe o conceito de líder, então esse aviso não é enviado. Para o comportamento completo do cluster, veja Protocolo (Cluster).