Das Affinitätsfeature von Load Balancer ordnet eine Client-IP-Adresse einem Back-End-Server zu. Die Affinität wird hergestellt, wenn die Ziel-IP-Adresse eines Pakets mit dem Cluster übereinstimmt, der Zielport mit dem Load-Balancer-Port übereinstimmt und die Quellen-IP-Adresse passt.
Bei bestehender Affinität werden alle Pakete an denselben Back-End-Server gesendet. Wenn die Affinität durch das Herunterfahren oder Entfernen eines Servers unterbrochen wird, kommt es zu einer Unterbrechung der gesamten Affinität und damit aller Verbindungen zu diesem Server. In der Befehlszeile oder auf GUI-Clients werden auch keine Verbindungsinformationen ausgegeben. Es wird nur die Anzahl der aktiven Affinitätssätze verwendet.
Bei Aktivierung der Affinität wird eine nachfolgende Anforderung von demselben Client an denselben Server gerichtet.
Nach einer gewissen Zeit hört der Client auf, Transaktionen zu senden, so dass der Affinitätseintrag entfernt wird. Die Lebensdauer von Affinitätsdatensätzen wird mit dem staletimeout-Wert festgelegt. Werden innerhalb der mit staletimeout angegebenen Zeit weitere Verbindungen empfangen, ist der Affinitätseintrag noch gültig, so dass die Anforderung an denselben Server weitergeleitet wird. Wenn innerhalb dieser Zeit keine weitere Verbindung empfangen wird, wird der Eintrag gelöscht. Für eine nach Ablauf dieser Zeit empfangene Verbindung wird ein neuer Server ausgewählt.
Ein Server wird mit dem Befehl "server down" (dscontrol server down) offline gesetzt, allerdings erst heruntergefahren, wenn der staletimeout-Wert abgelaufen ist.
Wird bei inaktivierter Affinität eine neue TCP-Verbindung von einem Client empfangen, verwendet Load Balancer den zu diesem Zeitpunkt richtigen Server und leitet die Pakete an diesen Server weiter. Wird eine weitere Verbindung von demselben Client empfangen, behandelt Load Balancer diese Verbindung als eine neue Verbindung und wählt wieder den zu diesem Zeitpunkt richtigen Server aus.