|
|
Δημοσιεύτηκε στις 2021-3-22 16:45:16
|
|
|
|

Το gRPC είναι ένα πλαίσιο κλήσης απομακρυσμένης διαδικασίας (RPC) υψηλής απόδοσης που είναι αγνωστικό ως προς τη γλώσσα.
Τα κύρια οφέλη του gRPC είναι:
Σύγχρονο, υψηλής απόδοσης, ελαφρύ πλαίσιο RPC. Ανάπτυξη API με πρώτο συμβόλαιο που χρησιμοποιεί buffer πρωτοκόλλου από προεπιλογή, επιτρέποντας υλοποιήσεις αγνωστικές ως προς τη γλώσσα. Εργαλεία διαθέσιμα σε πολλές γλώσσες για τη δημιουργία διακομιστών και πελατών με ισχυρή πληκτρολόγηση. Υποστηρίζει κλήσεις πελάτη, διακομιστή και αμφίδρομης ροής. Μειώστε τη χρήση του δικτύου με τη δυαδική σειριοποίηση Protobuf.
Αυτά τα πλεονεκτήματα καθιστούν το gRPC κατάλληλο για:
Ελαφριές μικροϋπηρεσίες όπου η αποτελεσματικότητα είναι κρίσιμη. Πολύγλωσσα συστήματα που απαιτούν πολλές γλώσσες για ανάπτυξη. Υπηρεσίες peer-to-peer σε πραγματικό χρόνο που πρέπει να χειρίζονται αιτήματα ή απαντήσεις ροής.
Αναθεώρηση:
Όταν χρησιμοποιείτε ASP.NET Core 3.1, είναι ενεργοποιημένη μια υπηρεσία gRPC και το τελικό σημείο HTTP/2 διαμορφώνεται χωρίς προστασία TLS, ανατρέξτε στο θέμα:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Χρησιμοποιώντας την κονσόλα .NET Core 3.1, προσπάθησα να καλέσω τη διεύθυνση υπηρεσίας HTTP gRPC με το ακόλουθο σφάλμα:
Ανεπίλυτη εξαίρεση. Grpc.Core.RpcException: Status(StatusCode="Μη διαθέσιμο", Detail="Σφάλμα κατά την έναρξη της κλήσης gRPC. HttpRequestException: Παρουσιάστηκε σφάλμα κατά την αποστολή του αιτήματος. IOException: Η απόκριση έληξε πρόωρα.", DebugException="System.Net.Http.HttpRequestException: Παρουσιάστηκε σφάλμα κατά την αποστολή της αίτησης. ---> System.IO.IOException: Η απόκριση έληξε πρόωρα.
Ανάλογα με την έκδοση του .NET που χρησιμοποιεί η εφαρμογή σας, υπάρχουν ορισμένες πρόσθετες απαιτήσεις για να καλέσετε μια μη ασφαλή υπηρεσία gRPC:
Το .NET 5 ή νεότερη έκδοση απαιτεί Grpc.Net.Client έκδοση 2.32.0 ή νεότερη. Το .NET Core 3.x απαιτεί πρόσθετη ρύθμιση παραμέτρων. Η εφαρμογή πρέπει να ορίσει το διακόπτη System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport σε true:
Οι ρυθμίσεις του πελάτη είναι οι εξής:
Μόνο το .NET Core 3.x απαιτεί το διακόπτη System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport. Δεν απαιτείται πρόσθετη ρύθμιση παραμέτρων στο .NET 5, ούτε αυτή η απαίτηση。
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
|
Προηγούμενος:.NET/C# Δοκιμή απόδοσης ανάκλασης, εκπομπής, έκφρασηςΕπόμενος:Καθυστερημένες αναφορές νεοφερμένων
|