Κοινή χρήση τεχνολογίας

Εισαγωγή στον «Μηχανισμό Ανακάλυψης Υπηρεσιών» στις Microservices

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Ο μηχανισμός ανακάλυψης υπηρεσιών των μικροϋπηρεσιών είναι μια μέθοδος δυναμικού εντοπισμού περιπτώσεων υπηρεσίας για επικοινωνία σε μια αρχιτεκτονική μικροϋπηρεσιών.

  • Βασίζεται κυρίως στο κέντρο εγγραφής για την εφαρμογή καταχώρισης υπηρεσιών, ερωτημάτων και υποστήριξης εξισορρόπησης φορτίου, βελτιώνοντας έτσι την επεκτασιμότητα και την ευελιξία του συστήματος.

1. Βασικές έννοιες

Η ανακάλυψη υπηρεσίας αναφέρεται στη διαδικασία αυτόματης ανακάλυψης και αναγνώρισης διαθέσιμων υπηρεσιών σε ένα κατανεμημένο σύστημα.

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

2. Κύρια βήματα

  • Εγγραφή υπηρεσίας

    • Όταν ξεκινά μια παρουσία microservice, θα καταχωρεί τις πληροφορίες τοποθεσίας του δικτύου (όπως διεύθυνση IP και αριθμό θύρας) και την αναγνώριση υπηρεσίας στο κέντρο καταχώρισης σέρβις.
    • Αυτή η διαδικασία εγγραφής είναι συνήθως αυτόματη και δεν απαιτεί ανθρώπινη παρέμβαση.
    • Το κέντρο εγγραφής είναι υπεύθυνο για τη διατήρηση των πληροφοριών εγγραφής όλων των παρουσιών υπηρεσιών και την υποστήριξη της δυναμικής εγγραφής και διαγραφής των παρουσιών υπηρεσιών.
  • Έρευνα υπηρεσίας

    • Όταν μια microservice χρειάζεται να καλέσει μια άλλη microservice, ζητά από το μητρώο υπηρεσιών για τη διαθέσιμη διεύθυνση δικτύου της απαιτούμενης υπηρεσίας.
    • Το κέντρο εγγραφής επιστρέφει τη λίστα διευθύνσεων των παρουσιών υπηρεσιών και ο καλών μπορεί να επιλέξει μια παρουσία υπηρεσίας για επικοινωνία σύμφωνα με την πολιτική εξισορρόπησης φορτίου.

3. Βασικά στοιχεία

  • Μητρώο υπηρεσιών

    • Είναι το βασικό συστατικό του μηχανισμού ανακάλυψης υπηρεσιών και είναι υπεύθυνο για τη διαχείριση και την αποθήκευση των πληροφοριών εγγραφής όλων των περιπτώσεων υπηρεσίας.
    • Παρέχει μια διεπαφή API για παρουσίες υπηρεσιών για την εγγραφή και την ακύρωση λειτουργιών, και επίσης υποστηρίζει τους καταναλωτές υπηρεσιών να αναζητούν τις πληροφορίες εγγραφής των παρουσιών υπηρεσιών.
  • Πάροχος υπηρεσιών

    • Είναι ένα παράδειγμα microservice που παρέχει μια συγκεκριμένη υπηρεσία.
    • Θα καταχωρίσει τις δικές του πληροφορίες υπηρεσίας στο μητρώο υπηρεσιών κατά την εκκίνηση και θα καταργήσει την καταχώριση των δικών του πληροφοριών υπηρεσίας κατά την έξοδό του.
  • Καταναλωτής Υπηρεσιών

    • Είναι ένα παράδειγμα microservice που πρέπει να καλέσει άλλες υπηρεσίες.
    • Λαμβάνει τη διεύθυνση δικτύου της απαιτούμενης υπηρεσίας ερωτώντας το μητρώο υπηρεσιών και δημιουργεί επικοινωνία μαζί του.

4. Πώς να εφαρμόσετε τον μηχανισμό ανακάλυψης υπηρεσιών

Ο μηχανισμός ανακάλυψης υπηρεσίας μπορεί να χωριστεί σε δύο τύπους: ανακάλυψη πελάτη και ανακάλυψη διακομιστή σύμφωνα με τη μέθοδο υλοποίησης:

  • λειτουργία εντοπισμού πελάτη

    • Ο πελάτης είναι υπεύθυνος για την υποβολή ερωτημάτων στο κέντρο εγγραφής, τη λήψη μιας λίστας διαθέσιμων υπηρεσιών και την άμεση αλληλεπίδραση με παρουσίες υπηρεσιών σύμφωνα με την πολιτική εξισορρόπησης φορτίου.
    • Το πλεονέκτημα είναι ότι ο πελάτης μπορεί να διαμορφώσει ευέλικτα στρατηγικές εξισορρόπησης φορτίου, μειώνοντας την εξάρτηση από το κέντρο εγγραφής υπηρεσιών.
    • Το μειονέκτημα είναι ότι ο πελάτης χρειάζεται να εφαρμόσει πολύπλοκη λογική ανακάλυψης, η οποία αυξάνει την πολυπλοκότητα του κώδικα και το κόστος συντήρησης.
  • Λειτουργία εντοπισμού διακομιστή

    • Ο πελάτης στέλνει ένα αίτημα στον διακομιστή (συνήθως μια πύλη API ή διακομιστής μεσολάβησης υπηρεσίας) και ο διακομιστής είναι υπεύθυνος για την υποβολή ερωτημάτων στο κέντρο εγγραφής και την προώθηση του αιτήματος στην πραγματική παρουσία υπηρεσίας.
    • Το πλεονέκτημα είναι ότι απλοποιεί την υλοποίηση του πελάτη και μειώνει την πολυπλοκότητα του κώδικα και το κόστος συντήρησης.
    • Το μειονέκτημα είναι ότι αυξάνει την καθυστέρηση του συστήματος και τα σημεία αποτυχίας, επειδή όλα τα αιτήματα πρέπει να προωθούνται μέσω του διακομιστή.

5. Πλεονεκτήματα του μηχανισμού ανακάλυψης υπηρεσιών

  • Μειώστε τη σύζευξη μεταξύ των υπηρεσιών

    • Οι Microservices δεν χρειάζεται να γνωρίζουν απευθείας η μια τη διεύθυνση δικτύου του άλλου, πρέπει μόνο να επικοινωνούν μέσω του κέντρου εγγραφής υπηρεσιών.
  • Βελτιώστε την επεκτασιμότητα και την ευελιξία του συστήματος

    • Καθώς οι υπηρεσίες αλλάζουν δυναμικά (όπως επέκταση, μείωση, μετεγκατάσταση κ.λπ.), το κέντρο εγγραφής υπηρεσιών μπορεί να ενημερώσει τις πληροφορίες παρουσίας υπηρεσίας σε πραγματικό χρόνο για να διασφαλίσει ότι δεν επηρεάζεται η επικοινωνία μεταξύ των υπηρεσιών.
  • Υποστηρίζει εξισορρόπηση φορτίου και failover

    • Ο πελάτης μπορεί να λάβει τη λίστα διευθύνσεων πολλαπλών παρουσιών υπηρεσιών από το κέντρο εγγραφής υπηρεσιών και να επιλέξει ένα από αυτά για επικοινωνία με βάση την πολιτική εξισορρόπησης φορτίου. Όταν μια παρουσία υπηρεσίας δεν είναι διαθέσιμη, το μητρώο υπηρεσίας μπορεί αυτόματα να την επισημάνει ως ανθυγιεινή και να αποφύγει την αποστολή αιτημάτων σε αυτήν.

6. Κοινά εργαλεία ανακάλυψης υπηρεσιών

  • Εύρηκα

    • Ένα εργαλείο ανακάλυψης υπηρεσίας που αναπτύχθηκε από το Netflix, χρησιμοποιώντας τη λειτουργία εντοπισμού πελάτη. Είναι πολύ ελαφρύ και εύκολο στην ενσωμάτωση και χρήση.
  • Πρόξενος

    • Εργαλείο κέντρου εντοπισμού και διαμόρφωσης υπηρεσιών που αναπτύχθηκε από τη HashiCorp. Παρέχει μια σχετικά ολοκληρωμένη λύση που περιλαμβάνει έλεγχο υγείας υπηρεσίας και άλλες λειτουργίες και υποστηρίζει πρωτόκολλα HTTP και DNS.
  • Ζωοφύλακας

    • Το Apache ZooKeeper είναι μια κατανεμημένη υπηρεσία συντονισμού ανοιχτού κώδικα που μπορεί επίσης να χρησιμοποιηθεί για την ανακάλυψη υπηρεσιών. Παρέχει κατανεμημένες κλειδαριές, υπηρεσίες ονοματοδοσίας και άλλες λειτουργίες και υποστηρίζει μια ποικιλία βιβλιοθηκών πελατών.

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