Prompteo

Unidad 6 · 2 min

Patrones de sistemas distribuidos

Sidecar, ambassador y adapter para un solo nodo; réplicas y sondas de salud, sharding, scatter/gather, elección de líder y patrones batch cuando el sistema pasa a ser muchos.

Patrones de sistemas distribuidos

Tres ayudantes viven al lado de la aplicación, en la misma unidad atómica, compartiendo su ciclo de vida. Lo que los separa es la dirección:

  • Sidecar: el caso general. Agrega una capacidad sin tocar el código.
  • Ambassador: mira hacia afuera en nombre de la aplicación; sus llamadas salientes pasan por él.
  • Adapter: mira hacia adentro en nombre del mundo; normaliza la salida al formato que el exterior espera.

Réplicas y salud

Las réplicas son intercambiables porque no guardan estado del pedido; guardar la sesión en memoria rompe eso y obliga a fijar cada usuario a una instancia. La sonda de liveness decide cuándo reiniciar el contenedor; la de readiness, cuándo está listo para recibir tráfico, y al fallar se le quita la dirección de los endpoints sin reiniciarlo; la de startup contiene a las otras dos mientras la aplicación levanta.

Escala y coordinación

El sharding reparte los datos: el hash reparte parejo y mata los recorridos por rango; el rango los conserva y expone shards calientes. El hashing consistente acota el movimiento de claves al cambiar la cantidad de nodos.

En scatter/gather la respuesta no es más rápida que la hoja más lenta; se convive con eso mediante peticiones de respaldo, timeouts con resultado parcial y micro-particionado.

El consenso —Paxos, Raft— da acuerdo con quórum de mayoría, no disponibilidad; un lease solo es seguro con tokens de cercado que verifica el recurso. Cierran la unidad los patrones batch.