Προώθηση gRPC
Το gRPC είναι ένα framework Remote Procedure Call (RPC) υψηλής απόδοσης, ανεξάρτητο γλώσσας προγραμματισμού.
Εισαγωγή
Το gRPC είναι ένα framework Remote Procedure Call (RPC) υψηλής απόδοσης, ανεξάρτητο γλώσσας προγραμματισμού. Είναι χτισμένο πάνω στο HTTP/2 και μπορεί να προωθηθεί μέσω του YARP. Παρόλο που το YARP δεν χρειάζεται να γνωρίζει τα μηνύματα gRPC, πρέπει να βεβαιωθείτε ότι είναι ενεργοποιημένο το σωστό πρωτόκολλο HTTP. Το gRPC απαιτεί HTTP/2, και οι κλήσεις gRPC θα αποτυγχάνουν αν το YARP δεν έχει διαμορφωθεί σωστά ώστε να στέλνει και να λαμβάνει αιτήματα HTTP/2.
Διαμόρφωση των εισερχόμενων πρωτοκόλλων του YARP
Το gRPC απαιτεί HTTP/2 στα περισσότερα σενάρια. Τα HTTP/1.1 και HTTP/2 είναι ενεργοποιημένα από προεπιλογή στους διακομιστές ASP.NET Core (το front end του YARP), όμως απαιτούν https (TLS) για το HTTP/2, οπότε το YARP πρέπει να ακούει σε ένα URL https://.
Το HTTP/2 μέσω http (χωρίς TLS) υποστηρίζεται μόνο στο Kestrel και απαιτεί συγκεκριμένες ρυθμίσεις. Για περισσότερες πληροφορίες, δείτε το gRPC services with ASP.NET Core.
Το παρακάτω δείχνει τη διαμόρφωση του Kestrel ώστε να χρησιμοποιεί HTTP/2 μέσω http (χωρίς TLS):
JSON {
"Kestrel": {
"Endpoints": {
"http": {
"Url": "http://localhost:5000",
"Protocols": "Http2"
}
}
}
}Διαμόρφωση των εξερχόμενων πρωτοκόλλων του YARP
Το YARP διαπραγματεύεται αυτόματα HTTP/1.1 ή HTTP/2 για τα εξερχόμενα αιτήματα του διακομιστή μεσολάβησης, αλλά μόνο για https (TLS). Το HTTP/2 μέσω http (χωρίς TLS) απαιτεί επιπλέον ρυθμίσεις. Σημειώστε ότι τα εξερχόμενα πρωτόκολλα είναι ανεξάρτητα από τα εισερχόμενα. Για παράδειγμα, μπορεί να χρησιμοποιηθεί https για την εισερχόμενη σύνδεση και http για την εξερχόμενη· αυτό ονομάζεται τερματισμός TLS. Για λεπτομέρειες διαμόρφωσης, δείτε το YARP HTTP Client Configuration.
Το παρακάτω δείχνει πώς να διαμορφώσετε το εξερχόμενο αίτημα του διακομιστή μεσολάβησης ώστε να χρησιμοποιεί HTTP/2:
JSON"cluster1": {
"HttpRequest": {
"Version": "2",
"VersionPolicy": "RequestVersionExact"
},
"Destinations": {
"cluster1/destination1": {
"Address": "http://localhost:6000/"
}
}
},gRPC-Web
Το gRPC-Web είναι μια εναλλακτική μορφή δεδομένων (wire format) για το gRPC, συμβατή με το HTTP/1.1.
application/grpc - το gRPC μέσω HTTP/2 είναι ο τρόπος με τον οποίο χρησιμοποιείται συνήθως το gRPC. application/grpc-web - το gRPC-Web τροποποιεί το πρωτόκολλο gRPC ώστε να είναι συμβατό με το HTTP/1.1. Το gRPC-Web μπορεί να χρησιμοποιηθεί σε περισσότερα περιβάλλοντα· μπορεί να χρησιμοποιηθεί από εφαρμογές browser και σε δίκτυα χωρίς πλήρη υποστήριξη HTTP/2. Δύο προηγμένα χαρακτηριστικά του gRPC δεν υποστηρίζονται: το client streaming και το bidirectional streaming.
Το gRPC-Web μπορεί να προωθηθεί με την προεπιλεγμένη διαμόρφωση του YARP, χωρίς ιδιαίτερες προσαρμογές.
Αυτό το άρθρο δημιουργήθηκε από τον συγγραφέα με τη βοήθεια τεχνητής νοημοσύνης (AI). Μάθετε περισσότερα