|
|
Zverejnené 2021-3-22 16:45:16
|
|
|
|

gRPC je vysokovýkonný rámec pre vzdialené volanie procedúr (RPC), ktorý je nezávislý od jazyka.
Hlavné výhody gRPC sú:
Moderný, vysoko výkonný, ľahký RPC rámec. Vývoj API založený na zmluve, ktorý štandardne používa protokolové buffery, čo umožňuje jazykovo nezávislé implementácie. Nástroje dostupné vo viacerých jazykoch na generovanie silne typovaných serverov a klientov. Podporuje klientske, serverové a obojsmerné streamovacie hovory. Obmedziť používanie siete pomocou binárnej serializácie Protobuf.
Tieto výhody robia gRPC vhodným pre:
Ľahké mikroslužby, kde je efektivita kľúčová. Polyglotné systémy, ktoré vyžadujú viacero jazykov na vývoj. Peer-to-peer služby v reálnom čase, ktoré musia spracovávať streamované požiadavky alebo odpovede.
Revízia:
Pri používaní ASP.NET Core 3.1 je povolená gRPC služba a HTTP/2 endpoint je nakonfigurovaný bez TLS ochrany, pozri:Prihlásenie na hypertextový odkaz je viditeľné.
Pomocou .NET Core 3.1 konzoly som sa pokúsil zavolať HTTP gRPC service address s nasledujúcou chybou:
Neriešená výnimka. Grpc.Core.RpcException: Status(StatusCode="Nedostupné", Detail="Chyba pri spustení gRPC volania. HttpRequestException: Pri odosielaní požiadavky došlo k chybe. IOException: Odpoveď skončila predčasne.", DebugException="System.Net.Http.HttpRequestException: Pri odosielaní požiadavky došlo k chybe. ---> System.IO.IOException: Odpoveď skončila predčasne.
V závislosti od verzie .NET, ktorú vaša aplikácia používa, existujú ďalšie požiadavky na zavolanie nezabezpečenej gRPC služby:
.NET 5 alebo novší vyžaduje verziu Grpc.Net.Client 2.32.0 alebo novšiu. .NET Core 3.x vyžaduje dodatočnú konfiguráciu. Aplikácia musí nastaviť prepínač System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport na true:
Nastavenia klienta sú nasledovné:
Iba .NET Core 3.x vyžaduje prepínač System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport. V .NET 5 nie je potrebná žiadna ďalšia konfigurácia, ani táto požiadavka nie je。
Prihlásenie na hypertextový odkaz je viditeľné.
|
Predchádzajúci:.NET/C# Testovanie výkonu reflexie, emitovania, výrazuBudúci:Neskoré správy nováčikov
|