L · Aviso de Líder
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 · Movido | L · Aviso de Líder | |
|---|---|---|
| Natureza | Resposta a uma requisição | Aviso 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ão | Fechar e reconectar ao novo líder | Manter — atualiza só a dica |
| Este nó | Certamente não é o líder | Pode 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, eaddré texto UTF-8 (comprimento variável, mostrado comoNna estrutura). O\nfinal é0A.
Fluxo
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).