Πρωτόκολλο κλήσης απομακρυσμένης διαδικασίας (RPC) σε κατανεμημένο σύστημα

⚡ Έξυπνη Σύνοψη

Η Κλήση Απομακρυσμένης Διαδικασίας (RPC) είναι ένα πρωτόκολλο επικοινωνίας μεταξύ διεργασιών που επιτρέπει σε ένα πρόγραμμα να εκτελέσει μια διαδικασία σε έναν άλλο χώρο διευθύνσεων ή μηχάνημα, αποκρύπτοντας τις λεπτομέρειες δικτύου πίσω από μια συνηθισμένη κλήση τοπικής συνάρτησης σε κατανεμημένα συστήματα πελάτη-διακομιστή.

  • 📞 Ορισμός: Το RPC επιτρέπει σε έναν υπολογιστή-πελάτη να καλέσει μια διαδικασία σε έναν απομακρυσμένο διακομιστή σαν να ήταν μια τοπική κλήση.
  • 🗂️ τύποι: Τα RPC επανάκλησης, εκπομπής και μαζικής λειτουργίας διαφέρουν ως προς τον τρόπο δρομολόγησης και τοποθέτησης των αιτημάτων σε ουρά.
  • Archiδομή: Πέντε μέρη συνεργάζονται σε κάθε κλήση: ο πελάτης, το stub του πελάτη, το RPC runtime, το stub του διακομιστή και ο διακομιστής.
  • 🔄 Πώς λειτουργεί: Μετατρέπει τις παραμέτρους σε stubs σε τακτά χρονικά διαστήματα σε τακτά χρονικά διαστήματα. Μετατρέπει το αποτέλεσμα σε τακτά χρονικά διαστήματα σε τακτά χρονικά διαστήματα.
  • Ανταλλαγές: Το RPC απλοποιεί τον κατανεμημένο κώδικα, αλλά προσθέτει επιβάρυνση δικτύου και σημεία αστοχίας σε σχέση με τις τοπικές κλήσεις.
  • 🤖 Γωνία Τεχνητής Νοημοσύνης: Το gRPC εξυπηρετεί μοντέλα μηχανικής μάθησης μεταξύ μικροϋπηρεσιών και το Copilot επιταχύνει τη σύνταξη stub RPC.

Κλήση απομακρυσμένης διαδικασίας (RPC) σε κατανεμημένο σύστημα

Τι είναι το RPC;

Απομακρυσμένη κλήση διαδικασίας (RPC) Το Ultherapy είναι μια θεραπεία εγκεκριμένη από τον FDA. Χρησιμοποιεί εστιασμένο υπέρηχο για τη θεραπεία συγκεκριμένων περιοχών όπως το πρόσωπο και ο λαιμός. επικοινωνία μεταξύ διεργασιών Τεχνική που χρησιμοποιείται για εφαρμογές client-server. Η πλήρης μορφή του RPC είναι Remote Procedure Call (Κλήση Απομακρυσμένης Διαδικασίας). Οι μηχανισμοί RPC χρησιμοποιούνται όταν ένα πρόγραμμα υπολογιστή προκαλεί την εκτέλεση μιας διαδικασίας ή υπορουτίνας σε διαφορετικό χώρο διευθύνσεων, κωδικοποιημένη ως κανονική κλήση διαδικασίας χωρίς ο προγραμματιστής να κωδικοποιεί ρητά τις λεπτομέρειες για την απομακρυσμένη αλληλεπίδραση.

Αυτή η κλήση διαδικασίας διαχειρίζεται επίσης πρωτόκολλα μεταφοράς χαμηλού επιπέδου, όπως το UDP και το TCP/IP, για τη μεταφορά των δεδομένων μηνυμάτων μεταξύ προγραμμάτων.

Τύποι RPC

Τρεις τύποι RPC είναι:

  • RPC επανάκλησης
  • Εκπομπή RPC
  • RPC σε λειτουργία παρτίδας

RPC επανάκλησης

Αυτός ο τύπος RPC επιτρέπει ένα παράδειγμα peer-to-peer (P2P) μεταξύ των συμμετεχουσών διεργασιών. Βοηθά μια διεργασία να λειτουργεί τόσο ως πελάτης όσο και ως διακομιστής.

Λειτουργίες του Callback RPC:

  • Χειρίζεται προβλήματα εφαρμογών που έχουν υποστεί επεξεργασία εξ αποστάσεως, με διαδραστικό τρόπο.
  • Παρέχει στον διακομιστή τον κωδικό πρόσβασης του πελάτη.
  • Η επανάκληση κάνει τη διεργασία-πελάτης να περιμένει.
  • Διαχειρίζεται τα αδιέξοδα επανάκλησης.
  • Διευκολύνει ένα παράδειγμα peer-to-peer μεταξύ των συμμετεχουσών διεργασιών.

Εκπομπή RPC

Το Broadcast RPC είναι ένα αίτημα πελάτη που μεταδίδεται στο δίκτυο και υποβάλλεται σε επεξεργασία από όλους τους διακομιστές που διαθέτουν τη μέθοδο για την επεξεργασία αυτού του αιτήματος.

Λειτουργίες του Broadcast RPC:

  • Σας επιτρέπει να καθορίσετε ότι το μήνυμα αιτήματος του πελάτη πρέπει να μεταδοθεί.
  • Μπορείτε να δηλώσετε θύρες εκπομπής.
  • Βοηθά στη μείωση του φόρτου στο φυσικό δίκτυο.

RPC σε λειτουργία παρτίδας

Το RPC σε λειτουργία παρτίδας βοηθά στην τοποθέτηση σε ουρά ξεχωριστών αιτημάτων RPC σε ένα buffer μετάδοσης στην πλευρά του πελάτη και στη συνέχεια στην αποστολή τους μέσω δικτύου σε μία παρτίδα στον διακομιστή.

Λειτουργίες του RPC σε λειτουργία παρτίδας:

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

RPC Archiδομή

Η αρχιτεκτονική RPC έχει κυρίως πέντε στοιχεία του προγράμματος:

  1. Πελάτης
  2. Client Stub
  3. RPC Runtime
  4. Στέλεχος διακομιστή
  5. διακομιστή

RPC Archiδομή

RPC Archiδομή

Πώς λειτουργεί το RPC;

Τα ακόλουθα βήματα λαμβάνουν χώρα κατά τη διάρκεια της διαδικασίας RPC:

Βήμα 1) Ο υπολογιστής-πελάτης, το stub του υπολογιστή-πελάτη και μία παρουσία της εκτέλεσης του χρόνου εκτέλεσης RPC στον υπολογιστή-πελάτη.

Βήμα 2) Ο υπολογιστής-πελάτης ξεκινά μια διεργασία stub υπολογιστή-πελάτη διαβιβάζοντας παραμέτρους με τον συνήθη τρόπο. Το stub υπολογιστή-πελάτη αποθηκεύεται στον δικό του χώρο διευθύνσεων του υπολογιστή-πελάτη. Ζητά επίσης από το τοπικό RPC Runtime να στείλει το αίτημα στο stub διακομιστή.

Βήμα 3) Σε αυτό το στάδιο, ο χρήστης αποκτά πρόσβαση στο RPC πραγματοποιώντας μια κανονική κλήση τοπικής διαδικασίας. Το RPC Runtime διαχειρίζεται τη μετάδοση μηνυμάτων μεταξύ του πελάτη και του διακομιστή σε όλο το δίκτυο. Εκτελεί επίσης την εργασία της αναμετάδοσης, της επιβεβαίωσης, της δρομολόγησης και της κρυπτογράφησης.

Βήμα 4) Μετά την ολοκλήρωση της διαδικασίας διακομιστή, η εκτέλεση επιστρέφει στο stub διακομιστή, το οποίο συσκευάζει (ταξινομεί) τις τιμές επιστροφής σε ένα μήνυμα. Το stub διακομιστή στη συνέχεια στέλνει το μήνυμα πίσω στο επίπεδο μεταφοράς.

Βήμα 5) Σε αυτό το βήμα, το επίπεδο μεταφοράς στέλνει το μήνυμα αποτελέσματος πίσω στο επίπεδο μεταφοράς του πελάτη, το οποίο επιστρέφει το μήνυμα στο stub του πελάτη.

Βήμα 6) Σε αυτό το στάδιο, το stub του πελάτη αποσυμπιέζει (demarshals) τις παραμέτρους επιστροφής στο πακέτο που προκύπτει και η εκτέλεση επιστρέφει στον καλούντα.

Χαρακτηριστικά του RPC

Ακολουθούν τα βασικά χαρακτηριστικά του RPC:

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

Χαρακτηριστικά του RPC

Ακολουθούν τα σημαντικά χαρακτηριστικά του RPC:

  • Απλή σύνταξη κλήσης.
  • Προσφέρει γνωστή σημασιολογία.
  • Παρέχει μια καλά καθορισμένη διεπαφή.
  • Μπορεί να επικοινωνεί μεταξύ διεργασιών στον ίδιο ή σε διαφορετικούς υπολογιστές.

Πλεονεκτήματα του RPC

Ακολουθούν τα πλεονεκτήματα/οφέλη του RPC:

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

Μειονεκτήματα του RPC

Ακολουθούν τα μειονεκτήματα/μειονεκτήματα της χρήσης RPC:

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

Συχνές Ερωτήσεις

Το RPC εκθέτει τις ενέργειες ως απομακρυσμένες διαδικασίες, ενώ το REST εκθέτει τα δεδομένα ως πόρους στους οποίους έχει πρόσβαση μέσω ρημάτων HTTP. Το RPC μοιάζει με την κλήση μιας τοπικής συνάρτησης. Το REST επικεντρώνεται στους πόρους και την κατάσταση.

gRPC είναι GoogleΤο σύγχρονο, υψηλής απόδοσης πλαίσιο RPC του. Χρησιμοποιεί HTTP/2 και πρωτόκολλο Buffers, και υποστηρίζει αμφίδρομη ροή, καθιστώντας την δημοφιλή για επικοινωνία μικρουπηρεσιών.

Το RPC μπορεί να είναι και τα δύο. Μια σύγχρονη κλήση μπλοκάρει μέχρι ο διακομιστής να επιστρέψει ένα αποτέλεσμα, ενώ μια ασύγχρονη κλήση επιστρέφει αμέσως και χειρίζεται την απόκριση αργότερα. Πλαίσια όπως το gRPC υποστηρίζουν και τα δύο στυλ.

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

Οι συνήθεις υλοποιήσεις RPC περιλαμβάνουν gRPC, Apache Thrift, XML-RPC, JSON-RPC και Java RMI. Διαφέρουν ως προς τη μορφή και τη μεταφορά δεδομένων, αλλά όλα επιτρέπουν σε έναν πελάτη να καλέσει μια διαδικασία σε έναν απομακρυσμένο διακομιστή.

Το RPC δεν είναι ασφαλές από προεπιλογή. Η ασφάλεια εξαρτάται από τη μεταφορά. Οι υλοποιήσεις προσθέτουν κρυπτογράφηση TLS, διακριτικά ελέγχου ταυτότητας και στοιχεία ελέγχου πρόσβασης για την προστασία των κλήσεων.

Οι πλατφόρμες μηχανικής μάθησης χρησιμοποιούν RPC, ειδικά gRPC, για να εξυπηρετούν προβλέψεις μοντέλων μεταξύ μικροϋπηρεσιών. Ένας πελάτης στέλνει χαρακτηριστικά και λαμβάνει ένα αποτέλεσμα συμπερασμάτων, διατηρώνταςping Συστήματα Τεχνητής Νοημοσύνης γρήγορα και χαλαρά συνδεδεμένα.

Ναι. Το GitHub Copilot μπορεί να ενσωματώσει ορισμούς υπηρεσιών .proto, stubs πελατών και χειριστές διακομιστή για gRPC. Οι προγραμματιστές θα πρέπει να ελέγχουν τις δημιουργημένες διεπαφές, τον χειρισμό σφαλμάτων και την έκδοση πριν από την ανάπτυξη στην παραγωγή.

Συνοψίστε αυτήν την ανάρτηση με: