Loadbalancing methodes

Round Robin: dit algoritme wordt het meest geïmplementeerd. Het werkt door elke server achter de load balancer om beurten te gebruiken, op basis van hun gewicht. Het is waarschijnlijk ook het meest vloeiende en eerlijke algoritme, aangezien de verwerkingstijd van de servers gelijkmatig verdeeld blijft. Round Robin is een dynamisch algoritme waarmee het servergewicht onderweg kan worden aangepast.

Static Round Robin: Net als bij Round Robin, wordt elke server om de beurt gebruikt op basis van hun gewicht. In tegenstelling tot Round Robin is het wijzigen van het servergewicht echter geen optie. Er zijn echter geen ontwerpbeperkingen wat betreft het aantal servers. Wanneer een server omhoog gaat, wordt deze altijd onmiddellijk opnieuw in de farm geïntroduceerd zodra de volledige kaart opnieuw is berekend.

Least Connections: met dit algoritme ontvangt de server met het laagste aantal verbindingen de verbinding. Dit type taakverdeling wordt aanbevolen wanneer zeer lange sessies worden verwacht, zoals LDAP, SQL, enz. Het is echter niet goed geschikt voor protocollen die korte sessies gebruiken, zoals HTTP. Dit algoritme is ook dynamisch, net als Round Robin.

Source: dit algoritme hasht de bron-IP en deelt deze door het totale gewicht van actieve servers. Hetzelfde client-IP bereikt altijd dezelfde server, zolang er geen server down of up gaat. Als het hash-resultaat verandert als gevolg van het veranderende aantal actieve servers, worden clients naar een andere server geleid. Dit algoritme wordt over het algemeen gebruikt in de TCP-modus waar cookies niet kunnen worden geplaatst. Het is ook standaard statisch.

URI: dit algoritme hasht ofwel het linkerdeel van de URI, of de hele URI en deelt de hash-waarde door het totale gewicht van actieve servers. Dezelfde URI wordt altijd naar dezelfde server gestuurd, zolang er geen servers omhoog of omlaag gaan. Het is ook een statisch algoritme en werkt op dezelfde manier als het Source-algoritme.

URL-parameter: dit statische algoritme kan alleen worden gebruikt op een HTTP-backend. De opgegeven URL-parameter wordt opgezocht in de queryreeks van elke HTTP GET-aanvraag. Als de gevonden parameter wordt gevolgd door een gelijkteken en een waarde, wordt de waarde gehasht en gedeeld door het totale gewicht van actieve servers.