Ticketing
Documentación

Tipos de RPC

El tag de una trama determina el tipo de RPC. Todos los payloads son un tipo de openraft serializado con postcard.

tagNombrePayload de solicitudPayload de respuestaPapel
1VoteVoteRequestVoteResponseElección de líder — un candidato pide el voto a otros nodos
2AppendEntriesAppendEntriesRequestAppendEntriesResponseReplicación de log + heartbeat — el líder propaga comandos replicados a los seguidores
3FullSnapshotuna tupla (Vote, SnapshotMeta, snapshot_bytes)SnapshotResponseEnvía el snapshot completo a un nodo que se ha quedado atrás
  • Vote — cuando el líder muere, un nodo cuyo heartbeat se ha detenido se convierte en candidato y pide votos; el nodo que obtiene la mayoría se convierte en el nuevo líder.
  • AppendEntries — el líder transporta los comandos de bloqueo a confirmar como entradas de log. Un AppendEntries sin entradas es el heartbeat — no hay ningún mensaje de heartbeat aparte.
  • FullSnapshot — envía todo el estado actual a un nodo demasiado atrasado para ponerse al día vía el log (o uno que acaba de unirse). Se envía entero, en una sola trama, sin streaming.

Flujo — cuando el líder muere

Nodo A
Nodo B
Nodo C
detecta que el heartbeat del líder desapareció → se convierte en candidato
Vote · solicitando un voto
Vote · solicitando un voto
mayoría incluyéndose a sí mismo → nuevo líder
AppendEntries (sin entradas = heartbeat)
AppendEntries (sin entradas = heartbeat)
RPC de consenso (Raft)

En cuanto llega el primer heartbeat del líder recién elegido, el clúster vuelve al servicio normal — el hueco total suele ser de 0,5-1 segundo. Consulta Comandos replicados para el flujo de AppendEntries (replicación de log) durante la operación normal.

Terminología

  • Replicación de log (log replication) — el líder convierte sus comandos decididos en un log ordenado y hace que los seguidores lo registren tal cual. Aplicar el mismo log en el mismo orden lleva a todos los nodos al mismo estado.
  • Heartbeat — una señal periódica de "estoy vivo". Cuando se detiene, los seguidores concluyen que el líder ha muerto e inician una elección.