Εξισορρόπηση φορτίου
Όταν ένα cluster έχει περισσότερους από έναν υγιείς προορισμούς, το YARP επιλέγει ποιος θα εξυπηρετήσει κάθε αίτημα χρησιμοποιώντας μια διαμορφώσιμη πολιτική εξισορρόπησης φορτίου.
Πολιτικές
Το YARP διαθέτει από προεπιλογή αρκετές ενσωματωμένες πολιτικές εξισορρόπησης φορτίου:
- Round robin — διατρέχει κυκλικά τη λίστα προορισμών με τη σειρά, δίνοντας σε καθέναν ίσο μερίδιο κυκλοφορίας.
- Least requests — στέλνει κάθε αίτημα στον προορισμό που έχει αυτή τη στιγμή τα λιγότερα αιτήματα σε εξέλιξη.
- Random — επιλέγει έναν προορισμό τυχαία.
- Power of two choices — δειγματοληπτεί δύο τυχαίους προορισμούς και επιλέγει όποιον έχει λιγότερα αιτήματα σε εξέλιξη, μια καλή προεπιλογή σε μεγάλη κλίμακα, καθώς αποφεύγει το φαινόμενο "αγέλης" που μπορεί να προκαλέσει η καθαρά τυχαία επιλογή.
- First — πάντα ο πρώτος διαθέσιμος προορισμός· χρήσιμο κυρίως για δοκιμές και σενάρια A/B.
Ορισμός της πολιτικής ενός cluster
Το πεδίο LoadBalancingPolicy σε ένα cluster.
JSON{
"Clusters": {
"cluster1": {
"LoadBalancingPolicy": "PowerOfTwoChoices",
"Destinations": {
"cluster1/destination1": { "Address": "https://localhost:10000/" },
"cluster1/destination2": { "Address": "https://localhost:10010/" }
}
}
}
}Διαμόρφωση
Η προεπιλεγμένη πολιτική είναι η Power of two choices όταν δεν έχει οριστεί καμία. Λαμβάνονται υπόψη μόνο οι προορισμοί που είναι γνωστό ότι είναι υγιείς - δείτε Έλεγχοι υγείας προορισμού για το πώς ένας προορισμός χαρακτηρίζεται μη υγιής και αποκλείεται από την περιτροπή.
Η εξισορρόπηση φορτίου κατανέμει τα αιτήματα μεταξύ των προορισμών· δεν καθηλώνει έναν συγκεκριμένο client στον ίδιο προορισμό σε διαδοχικά αιτήματα. Αν αυτό χρειάζεστε, δείτε τη Συνάφεια συνεδρίας.
Προσαρμοσμένες πολιτικές
Υλοποιήστε το ILoadBalancingPolicy και καταχωρίστε το στο DI για να ενσωματώσετε προσαρμοσμένη λογική επιλογής - το ίδιο σημείο επεκτασιμότητας πάνω στο οποίο είναι χτισμένες και οι ίδιες οι ενσωματωμένες πολιτικές του YARP.