|
|
Публикувано на 22.03.2021 16:45:16
|
|
|
|

gRPC е високопроизводителна рамка за отдалечено извикване на процедури (RPC), която е независима от езика.
Основните предимства на gRPC са:
Модерен, високопроизводителен, лек RPC фреймворк. Разработка на API с приоритет на договор, която използва протоколни буфери по подразбиране, позволявайки имплементации, независими от езика. Инструменти са налични на няколко езика за генериране на силно типизирани сървъри и клиенти. Поддържа клиентски, сървърни и двупосочни стрийминг разговори. Намалете използването на мрежата с двоична сериализация на 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="Unavailable", 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# Рефлексия, излъчване, тестване на производителността на експресияСледващ:Доклади за късни новодошли
|