|
|
Objavljeno 22. 3. 2021 ob 16:45:16
|
|
|
|

gRPC je visokozmogljiv okvir za oddaljene klice postopkov (RPC), ki je jezikovno neodvisen.
Glavne prednosti gRPC so:
Sodoben, visoko zmogljiv in lahek RPC okvir. Razvoj API-jev, ki temeljijo na pogodbi, ki privzeto uporablja protokolne medpomnilnike, kar omogoča jezikovno neodvisne implementacije. Orodja, ki so na voljo v več jezikih za generiranje močno tipiziranih strežnikov in odjemalcev. Podpira klice odjemalca, strežnika in dvosmernega pretakanja. Zmanjšajte uporabo omrežja s Protobuf binarno serializacijo.
Te prednosti naredijo gRPC primeren za:
Lahki mikroservisi, kjer je učinkovitost ključnega pomena. Poliglotni sistemi, ki za razvoj zahtevajo več jezikov. Peer-to-peer storitve v realnem času, ki morajo obravnavati pretočne zahteve ali odgovore.
Pregled:
Pri uporabi ASP.NET Core 3.1 je omogočena gRPC storitev, HTTP/2 končna točka pa je konfigurirana brez TLS zaščite, glej:Prijava do hiperpovezave je vidna.
Z uporabo .NET Core 3.1 konzole sem poskušal poklicati HTTP gRPC naslov storitve z naslednjo napako:
Neobdelana izjema. Grpc.Core.RpcException: Status(StatusCode="Nedosegljiv", Detail="Napaka pri začetku gRPC klica. HttpRequestException: Med pošiljanjem zahteve je prišlo do napake. IOException: Odgovor se je končal prezgodaj.", DebugException="System.Net.Http.HttpRequestException: Med pošiljanjem zahteve je prišlo do napake. ---> System.IO.IOException: Odgovor se je končal prezgodaj.
Glede na različico .NET, ki jo uporablja vaša aplikacija, obstajajo dodatne zahteve za klic nevarne gRPC storitve:
.NET 5 ali novejša zahteva različico Grpc.Net.Client 2.32.0 ali novejšo. .NET Core 3.x zahteva dodatno konfiguracijo. Aplikacija mora nastaviti stikalo System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport na true:
Nastavitve odjemalca so naslednje:
Samo .NET Core 3.x zahteva stikalo System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport. V .NET 5 ni potrebna dodatna konfiguracija, prav tako ta zahteva ni。
Prijava do hiperpovezave je vidna.
|
Prejšnji:.NET/C# testiranje zmogljivosti refleksije, oddajanja in izražanjaNaslednji:Pozna poročila novincev
|