Load Balancing: Τι είναι και πώς λειτουργεί;

27/10/2023 / Miscellaneous
load-balancing

Το Load Balancing είναι ένας τρόπος να μοιράσουμε το εισερχόμενο network traffic σε πολλαπλούς backend server, οι οποίοι αποτελούν ένα γκρουπ που λέγεται server farm ή server pool. 

Μοιράζοντας το workload σε διαφορετικά μηχανήματα, καταφέρνουμε να αυξήσουμε την απόδοση και σταθερότητα του ιστοχώρου ή της εφαρμογής που hostarουμε.

Ο Load Balancer είναι η συσκευή, είτε hardware είτε software, που είναι υπεύθυνη να μοιράζει το network traffic στο server pool.

 

Σύστημα χωρίς Load Balancer:

Σύστημα με Load Balancer:

 


Τι εισερχόμενο traffic μπορεί να χειριστεί ένας Balancer;

Οι admins του δικτύου συνήθως φτιάχνουν κανόνες προώθησης για 4 κύριους τύπους κίνησης.

  • HTTP - Ο balancer μπορεί να χρησιμοποιήσει μηχανισμούς του http για να προωθήσει τα αιτήματα στους servers . Χρησιμοποιεί τα headers X-Forwarded-For, X-Forwarded-Proto, και  X-Forwarded-Port για να δώσει στο backend πληροφορίες για το αρχικό αίτημα.

  • HTTPS - Λειτουργεί όπως και στο HTTP, ενώ έχουμε επιπρόσθετα κρυπτογράφηση. Η κρυπτογράφηση χειρίζεται με 2 τρόπους. Είτε έχουμε SSL-Passthrough, δηλαδή διατήρηση της κρυπτογράφησης ανάμεσα στο backend και τον balancer, είτε έχουμε ssl-termination, δηλαδή η κρυπτογράφηση “περιμένει” στον balancer και η σύνδεση ανάμεσα σε balancer-backend γίνεται χωρίς αυτή.

  • TCP

  • UDP


Πώς διαλέγει backend servers ένας Load Balancer;

Ο Load Balancer διαλέγει σε ποιον backend server θα προωθήσει ένα εισερχόμενο request. Πραγματοποιεί συχνά health checks και βλέπει ποιοι servers μπορούν να δεχτούν πρόσθετη κίνηση. 

Αν ένας server δεν θεωρείται healthy, ο balancer δεν τον λαμβάνει υπόψην. Από το server pool που είναι healthy, o balancer τρέχει έναν αλγόριθμο για να αποφασίσει πού θα προωθήσει το εισερχόμενο traffic.

Κάποιοι αλγόριθμοι που χρησιμοποιούνται συχνά είναι οι:

  • Round Robin: Ο Balancer μεταφέρει τα requests στους servers με τη σειρά. Αν έχουμε 3 σέρβερ, το πρώτο request θα πάει στον πρώτο, το δεύτερο στον δεύτερο, το τρίτο στον τρίτο και το τέταρτο πάλι στον πρώτο.
  • Least Connections: Ο Balancer διαλέγει τον server με τις λιγότερες ενεργές συνδέσεις. Συνήθως χρησιμοποιείται όταν έχουμε μακρας διάρκειας sessions.
  • Source: Ο Balancer διαλέγει τον server με βάση ένα κομμάτι της IP του επισκέπτη. Με αυτόν τον τρόπο είναι σίγουρο ότι ο ίδιος client θα συνδέεται πάντα με τον ίδιο backend server.

Μερικές εφαρμογές απαιτούν τον client να συνδέεται συνεχώς στον ίδιο backend server. Αυτό επιτυγχάνεται είτε με τον source αλγόριθμο που αναφέραμε πριν, είτε με την χρήση από τον balancer, έτσι ώστε την συγκεκριμένη ip να την συνδέει πάντα με τον ίδιο server.

 

Χρήση περισσότερων Balancers

Η χρήση ενός μόνο balancer, σημαίνει αυτόματα ότι σε περίπτωση κάποιας βλάβης, θα υπάρχει αδυναμία σύνδεσης ανάμεσα σε server-clients. Για αυτό μπορεί να χρησιμοποιηθεί και ένας δεύτερος. ‘Οταν έχουμε 2 balancers, ο ένας ελέγχει διαρκώς αν ο άλλος είναι healthy. Έτσι μόλις συμβεί κάτι στον πρώτο, αυτόματα παίρνει τη θέση του ο δεύτερος. Αυτή η εναλλαγή γίνεται με τη χρήση floating ΙP.

 

 

 

 

Στην Cloud Concept στόχο αποτελεί η αδιάλειπτη τεχνική υποστήριξη των αναγκών σας, η προσφορά managed υπηρεσιών υψηλού επιπέδου και η παροχή πρόσβασης σε χρήσιμες προτάσεις για την αποδοτική διαχείριση των δεδομένων σας.



Ακολουθήστε μας σε LinkedIn, FacebookInstagram ή εγγραφείτε στο Newsletter μας, για να μένετε ενημερωμένοι! 

ΣΥΝΔΕΣΗ

Αίτηση επικοινωνίας

ΠΑΝΩ