PrincipianteAdministrador

Varias claves por proveedor: distribución ponderada, fijación persistente y relevo de claves en espera

Adjunte varias claves de API a un upstream: distribución ponderada, fijación persistente por llamador y claves en espera con weight=0 como red de seguridad; deje de esperar en seco ante un 429.

De qué se queja realmente la comunidad

Favoritas de Reddit: "el RPM de una clave de OpenAI no alcanza, ¿cómo roto entre varias cuentas?", "una clave alcanza el 429 y el negocio simplemente espera", "cambiar de clave pierde toda la afinidad de caché de la sesión".

Implementar la rotación por su cuenta implica gestionar la fijación, los pesos, la espera y la expulsión por fallo: un esfuerzo de ingeniería real.

Cómo lo hace GateLLM

El formulario de upstream de GateLLM acepta varias claves de API: un hash ponderado determinista (FNV-1a) fija de forma persistente cada llamador a la misma clave upstream (estable dentro del TTL; rotar una clave en el mismo sitio no rompe la fijación), y los pesos establecen la proporción de distribución. Cuando una clave falla, el gateway reintenta con la siguiente clave no probada dentro de ese upstream, sin anular la fijación persistente original.

Las claves con weight=0 están en espera y se habilitan solo después de que fallen todas las claves con weight>0. El estado de fijación (binding / predicted / stale) se puede observar fila por fila en la consola.

El mecanismo se apila de forma ortogonal con los balanceadores de carga: Smooth WRR elige el upstream entre las entradas y luego la selección persistente elige la clave dentro de él.

5 palancas que realmente funcionan

  • Varias claves ponderadas: un hash ponderado determinista distribuye a los llamadores, los pesos son proporciones
  • Fijación persistente: cada llamador permanece en la misma clave upstream dentro del TTL, con afinidad de caché
  • Claves en espera: las claves con weight=0 quedan fuera de la distribución normal y se habilitan solo tras fallar todas las claves activas
  • Fijaciones observables: estados binding / predicted / stale fila por fila, con actualización automática cada 3 s
  • Ortogonal al balanceador: la selección de clave dentro de un upstream y Smooth WRR entre upstreams se apilan en dos capas
Referencia completa: campos de upstream y modelos (docs)

Preguntas frecuentes