1. Load Balancer (συχνά η πρώτη στάση):
* Πολλά συστήματα χρησιμοποιούν έναν εξισορροπητή φορτίου ως σημείο εισόδου. Αυτός είναι ένας ειδικός διακομιστής που διανέμει εισερχόμενα αιτήματα σε πολλούς διακομιστές backend (οι πραγματικές υπηρεσίες). Ο εξισορροπητής φορτίου αποφασίζει ποιος διακομιστής θα προωθήσει το αίτημα βάσει παραγόντων όπως το φορτίο του διακομιστή, οι έλεγχοι υγείας και ενδεχομένως ακόμη και τα χαρακτηριστικά αίτησης (π.χ. χρησιμοποιώντας μια τεχνική που ονομάζεται δρομολόγηση περιεχομένου).
* Ο εξισορροπητής φορτίου λειτουργεί συνήθως στο στρώμα δικτύου (στρώμα 4) ή στο επίπεδο εφαρμογής (στρώμα 7). Οι εξισορροπητές φορτίου Layer 4 εξετάζουν πράγματα όπως διευθύνσεις IP και θύρες, ενώ οι εξισορροπητές φορτίου Layer 7 επιθεωρούν το ίδιο το αίτημα HTTP (κεφαλίδες, URL κ.λπ.) πριν από τη λήψη απόφασης δρομολόγησης.
2. Αντίστροφη πληρεξούσιο (συχνά μετά τον εξισορρόπηση φορτίου):
* Ένας αντίστροφος πληρεξούσιος κάθεται μπροστά σε έναν ή περισσότερους διακομιστές backend. Λαμβάνει αιτήματα από τον εξισορροπητή φορτίου (ή απευθείας από τους πελάτες, εάν δεν υπάρχει εξισορρόπηση φορτίου) και τα προωθεί στην κατάλληλη υπηρεσία.
* Αντίστροφοι πληρεξούσιοι συχνά χειρίζονται εργασίες όπως η προσωρινή αποθήκευση, ο τερματισμός του SSL (αποκρυπτογράφηση της κυκλοφορίας HTTPS) και η τροποποίηση αίτησης πριν περάσουν το αίτημα στο backend.
* Το Nginx και το Apache είναι δημοφιλή παραδείγματα αντίστροφων πληρεξουσίων.
3. Δρομολόγηση από την πλευρά του διακομιστή (εντός της εφαρμογής):
* Μόλις το αίτημα φτάσει στο διακομιστή (μετά από ενδεχομένως διέλευση μέσω ενός εξισορροπητή φορτίου και αντίστροφου μεσολάβησης), ο ίδιος ο διακομιστής πρέπει να καθορίσει ποια συγκεκριμένη υπηρεσία ή εφαρμογή θα πρέπει να το χειριστεί. Αυτό γίνεται συνήθως χρησιμοποιώντας μία από τις ακόλουθες μεθόδους:
* Διαδρομή URL: Η πιο συνηθισμένη μέθοδος. Ο διακομιστής εξετάζει το στοιχείο διαδρομής της διεύθυνσης URL (το τμήμα μετά το όνομα τομέα). Για παράδειγμα, `/χρήστες/123` μπορεί να δρομολογηθεί σε μια υπηρεσία χρήστη, ενώ το`/products/search` μπορεί να μεταβεί σε μια υπηρεσία καταλόγου προϊόντων. Τα πλαίσια όπως το Express.js (Node.js), η Spring Boot (Java) και το Django (Python) παρέχουν μηχανισμούς για τον καθορισμό των διαδρομών που βασίζονται σε διαδρομές URL.
* Όνομα κεντρικού υπολογιστή/τομέας: Διαφορετικές υπηρεσίες μπορούν να αναπτυχθούν σε διαφορετικά υποτομέα ή ονόματα κεντρικών υπολογιστών (π.χ. `Users.example.com 'vs. Products.Example.com'). Ο διακομιστής μπορεί να χρησιμοποιήσει το όνομα κεντρικού υπολογιστή για να καθορίσει την κατάλληλη υπηρεσία.
* δρομολόγηση βασισμένη στην κεφαλίδα: Το αίτημα μπορεί να περιλαμβάνει κεφαλίδες που περιέχουν πληροφορίες σχετικά με την προβλεπόμενη υπηρεσία. Ο διακομιστής μπορεί να ελέγξει αυτές τις κεφαλίδες για να δρομολογήσει ανάλογα το αίτημα.
* Περιεχόμενο αίτησης: Σε ορισμένες περιπτώσεις, το περιεχόμενο του ίδιου του σώματος αίτησης μπορεί να καθορίσει ποια υπηρεσία θα πρέπει να το χειριστεί. Αυτό είναι λιγότερο συνηθισμένο επειδή απαιτεί περισσότερη επεξεργασία και μπορεί να είναι λιγότερο αποτελεσματική.
4. Discovery Service (για αρχιτεκτονικές Microservices):
* Στις αρχιτεκτονικές μικροεπιχειρήσεις, οι υπηρεσίες συχνά αναπτύσσονται δυναμικά και κλιμακώνονται. Οι μηχανισμοί ανακάλυψης υπηρεσιών, όπως ο πρόξενος, κ.λπ., ή οι Kubernetes, βοηθούν στον εντοπισμό των σημερινών περιπτώσεων κάθε υπηρεσίας. Όταν έρχεται ένα αίτημα, ο μηχανισμός δρομολόγησης (π.χ., ένα αντίστροφο πληρεξούσιο ή πύλη API) ερωτάει το σύστημα ανακάλυψης υπηρεσιών για να βρει τη διεύθυνση της κατάλληλης παρουσίας υπηρεσίας και να προωθεί το αίτημα.
Συνοπτικά: Η διαδικασία είναι μια αλυσίδα δυνητικά πολλαπλών εξαρτημάτων. Ένα αίτημα συνήθως ρέει έτσι:
Πελάτης -> (Balancer Load) -> (αντίστροφος πληρεξούσιος) -> Server -> (Discovery Service, εάν ισχύει) -> Ειδική υπηρεσία
Η ακριβής εφαρμογή εξαρτάται σε μεγάλο βαθμό από την πολυπλοκότητα του συστήματος και τις συγκεκριμένες τεχνολογίες που χρησιμοποιούνται. Οι απλές εφαρμογές μπορεί να περιλαμβάνουν μόνο δρομολόγηση διαδρομής URL σε έναν μόνο διακομιστή, ενώ τα συστήματα μεγάλης κλίμακας χρησιμοποιούν ένα συνδυασμό εξισορρόπησης φορτίου, αντιστροφών πληρεξουσίων, ανακάλυψης υπηρεσιών και εξελιγμένων κανόνων δρομολόγησης.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα