Sessies opnieuw in evenwicht brengen in Relianoid met sessiepersistentie op basis van cookie-invoeging

Categorieën bekijken

Sessies opnieuw in evenwicht brengen in Relianoid met sessiepersistentie op basis van cookie-invoeging

2 min leestijd

Issue #

Een gebruiker meldt dat hij Relianoid gebruikt voor load balancing met cookie insertion-based session persistence. Aanvankelijk was de setup perfect gebalanceerd met vijf servers. Echter, na het toevoegen van een nieuwe server aan de pool, worden sessies niet zoals verwacht gedistribueerd. De nieuwe server heeft slechts een paar sessies, terwijl de bestaande servers het grootste deel van het verkeer blijven verwerken.

Uitleg #

Dit probleem ontstaat door het huidige sessiepersistentiemechanisme en het gebruikte load balancing-algoritme.

Het probleem begrijpen #

1. Cookie-invoeging-gebaseerde sessiepersistentie: Bij het gebruik van cookie-invoeging voor sessiepersistentie wijst de load balancer een unieke cookie toe aan elke client. Deze cookie stuurt opeenvolgende verzoeken van dezelfde client naar dezelfde backendserver, wat sessiepersistentie garandeert. Dit werkt goed in een stabiele opstelling, maar creëert uitdagingen wanneer een nieuwe server aan de pool wordt toegevoegd.

2. Bestaande sessies zijn “plakkerig”: Omdat sessies al zijn ingesteld met de initiële set servers, blijven deze bestaande sessies "sticky" aan hun oorspronkelijke backends vanwege de persistentiecookie. Bijgevolg ontvangt de nieuw toegevoegde server alleen nieuwe sessies of verkeer van nieuwe clients waaraan nog geen persistentiecookie is toegewezen.

3. Huidige beperkingen van het planningalgoritme: Veel load balancers gebruiken een standaard planningalgoritme zoals Round Robin of Least Response Time. Deze algoritmen herbalanceren de belasting niet noodzakelijkerwijs wanneer er nieuwe servers worden toegevoegd, vooral niet wanneer sessiepersistentie is betrokken. Dit komt omdat de algoritmen de neiging hebben om verbindingen met bestaande backends te behouden voor actieve sessies.

Cookiesessie opnieuw in evenwicht brengen

Waarom sessies niet opnieuw in evenwicht worden gebracht #

Wanneer er een nieuwe server wordt toegevoegd, begint deze niet meteen de belasting gelijk te verdelen, omdat:

  • Bestaande sessies zijn gekoppeld aan hun oorspronkelijke backends.
  • Het standaardplanningalgoritme geeft geen prioriteit aan backends met minder sessies of verbindingen.

Om een ​​eerlijke verdeling van sessies te bereiken, is een ander load balancing-algoritme nodig.

Het resultaat #

Gebruik het planningsalgoritme ‘Minste verbindingen’ #

Het Least Connections-algoritme is een planningsmethode waarbij de load balancer de backendserver met de minste actieve verbindingen selecteert. Deze aanpak helpt sessies gelijkmatiger te verdelen, vooral wanneer er een nieuwe server aan de pool wordt toegevoegd.

Dit is waarom “Least Connections” effectief werkt in dit scenario:

  • Dynamische herverdeling: In tegenstelling tot algoritmen zoals Round Robin, evalueert Least Connections voortdurend welke server de minste actieve sessies heeft. Hierdoor kan de nieuwe server, die aanvankelijk minder sessies heeft, meer nieuwe verbindingen ontvangen totdat de belasting gelijk is.
  • Beter gebruik van bronnen: wanneer er nieuwe sessies worden aangemaakt, worden deze doorgestuurd naar de server met de minste belasting, waardoor het algehele gebruik van bronnen wordt verbeterd.

Stappen voor het implementeren van het algoritme 'Least Connections' in Relianoid #

1. Toegang tot de Relianoid Load Balancer-configuratie: Meld u aan bij uw Relianoid-beheerconsole of gebruik de CLI-hulpmiddelen, indien van toepassing.
2. Navigeer naar de Load Balancer-instellingen: Zoek de instellingen voor uw load balancer-instantie die de serverpool beheert met sessiepersistentie.
3. Wijzig het planningsalgoritme:

  • Zoek de instelling voor het load balancing-algoritme of de planningsmethode.
  • Wijzig het algoritme van de huidige instelling (bijv. Round Robin) naar Minste verbindingen.

4. Wijzigingen opslaan en toepassen: Zorg ervoor dat u uw wijzigingen opslaat en toepast op de load balancer-configuratie. Afhankelijk van uw omgeving kan het nodig zijn om de load balancer opnieuw op te starten of een soft reload uit te voeren.
5. Bewaken en verifiëren: Controleer na het toepassen van de wijzigingen de sessieverdeling over alle servers. Na verloop van tijd zou de nieuwe server meer sessies moeten ontvangen, wat leidt tot een meer gebalanceerde belasting.

Conclusie #

Door het load balancing-algoritme te wijzigen naar "Least Connections", zorgt u ervoor dat de nieuw toegevoegde server kan inhalen en meer sessies kan verwerken. Deze dynamische planningsmethode houdt rekening met het aantal actieve verbindingen en verdeelt de belasting efficiënt, waardoor het onevenwichtsprobleem wordt opgelost dat wordt veroorzaakt door sessiepersistentie met cookie-invoeging.

Als u na het doorvoeren van deze wijziging nog steeds problemen ondervindt, controleer dan het volgende:

  • De gezondheid en prestaties van de nieuw toegevoegde server.
  • De configuratie voor andere parameters die van invloed kunnen zijn op de load balancing (bijvoorbeeld sessietime-outinstellingen, stickinessduur, enz.).
  • Logboeken op netwerk- of applicatieniveau voor mogelijke fouten of knelpunten.

Door deze stappen te volgen, kunt u de configuratie van uw load balancer optimaliseren en een eerlijke en evenwichtige sessieverdeling over alle servers in uw pool garanderen.

📄 Download dit document in PDF-formaat #

    E-MAIL: *

    Powered by BeterDocs