|
|
Veröffentlicht am 22.3.2021, 16:45:16
|
|
|
|

gRPC ist ein Hochleistungs-Remote Procedure Call (RPC)-Framework, das sprachunabhängig ist.
Die Hauptvorteile von gRPC sind:
Modernes, leistungsstarkes, leichtes RPC-Framework. Contract-First-API-Entwicklung, die standardmäßig Protokollpuffer verwendet und sprachunabhängige Implementierungen ermöglicht. Werkzeuge verfügbar in mehreren Sprachen, um stark typisierte Server und Clients zu generieren. Unterstützt Client-, Server- und zweiseitige Streaming-Aufrufe. Reduziere die Nutzung des Netzwerks mit Protobuf binärer Serialisierung.
Diese Vorteile machen gRPC geeignet für:
Leichte Microservices, bei denen Effizienz entscheidend ist. Polyglotte Systeme, die mehrere Sprachen für die Entwicklung erfordern. Peer-to-Peer-Echtzeitdienste, die Streaming-Anfragen oder -antworten bearbeiten müssen.
Rezension:
Bei Verwendung von ASP.NET Core 3.1 wird ein gRPC-Dienst aktiviert, und der HTTP/2-Endpunkt wird ohne TLS-Schutz konfiguriert, siehe:Der Hyperlink-Login ist sichtbar.
Mit der .NET Core 3.1-Konsole habe ich versucht, die HTTP-gRPC-Serviceadresse mit folgendem Fehler aufzurufen:
Unbearbeitete Ausnahme. Grpc.Core.RpcException: Status(StatusCode="Unverfügbar", Detail="Fehler startet gRPC-Aufruf. HttpRequestException: Ein Fehler trat beim Senden der Anfrage auf. IOException: Die Antwort endete vorzeitig.", DebugException="System.Net.Http.HttpRequestException: Beim Absenden der Anfrage trat ein Fehler auf. ---> System.IO.IOException: Die Antwort endete vorzeitig.
Je nach der .NET-Version, die Ihre App verwendet, gibt es einige zusätzliche Voraussetzungen, um einen unsicheren gRPC-Dienst aufzurufen:
.NET 5 oder höher benötigt Grpc.Net.Client Version 2.32.0 oder neuer. .NET Core 3.x erfordert zusätzliche Konfigurationen. Die App muss den System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport-Switch auf true setzen:
Die Client-Einstellungen sind wie folgt:
Nur .NET Core 3.x benötigt den System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport-Switch. In .NET 5 ist keine zusätzliche Konfiguration erforderlich, ebenso wenig ist diese Voraussetzung。
Der Hyperlink-Login ist sichtbar.
|
Vorhergehend:.NET/C# Reflexions-, Emit- und Ausdrucks-LeistungstestsNächster:Späte Neuankömmlinge berichten
|