Die <code>sticky</code>-Routing-Strategie ordnet jeden Anrufer deterministisch einem bevorzugten Worker zu, indem sie die Installations-ID des Anrufers, dann den API-Schlüssel und anschließend die IP in dieser Reihenfolge hasht <a href="#ref-1">[1]</a>. Ihre Anfragen landen immer auf demselben Server, auf dem ihr Modell geladen ist und ihr Prompt-Cache warm gehalten wird. Dies ist ein Feld in der Gateway-Konfiguration; der Rest des Clusters bleibt unverändert.
Prompt-Cache-Lokalität hält Chats schnell
LLM-Laufzeiten nutzen Berechnungen über ein Gespräch hinweg wieder, daher führt das Wechseln eines Nutzers zwischen Servern zum Verlust dieser Arbeit und jede Runde muss erneut berechnet werden <a href="#ref-1">[1]</a>. Sticky Affinität hält mehrstufige Chats auf derselben warmen Verbindung, weshalb sie sich für Assistenten und Copiloten mit stabiler Nutzerbasis eignet. Zustandslose Batch-Anfragen, wie etwa ein Embeddings-Durchlauf, werden besser durch <code>least-connections</code> verteilt.
Ein Hash, keine Sitzungstabelle
Die Zuordnung erfolgt über einen Hash, es wird kein Sitzungszustand gespeichert, daher gibt es nichts zu replizieren: Sie übersteht einen Gateway-Neustart und mehrere Gateway-Replikate stimmen ohne Koordination überein <a href="#ref-2">[2]</a>. Failover ist ebenfalls deterministisch pro Anrufer, sodass der zweitbevorzugte Worker eines Nutzers immer derselbe Server ist und selbst Ausfälle konsistent behandelt werden.
Das Hinzufügen eines Servers ändert fast niemanden
Da die Strategie Rendezvous-Hashing verwendet, werden beim Hinzufügen oder Entfernen eines Workers nur die Anrufer neu zugeordnet, deren Top-Wahl sich geändert hat; alle anderen behalten ihre Verbindung <a href="#ref-1">[1]</a>. Ein Anrufer ohne jegliche Identität fällt auf Round-Robin zurück, und Affinität kombiniert sich automatisch mit modellbewusstem Routing, indem sie innerhalb der warmen Menge von Arbeitern angewendet wird.