|
|
Опубліковано 2021-3-22 16:45:16
|
|
|
|

gRPC — це високопродуктивний фреймворк віддаленого виклику процедур (RPC), який не залежить від мови.
Основні переваги gRPC такі:
Сучасний, високопродуктивний, легкий фреймворк RPC. Розробка API, орієнтована на контракт, яка за замовчуванням використовує буфери протоколів, що дозволяє реалізувати, незалежні від мови. Інструменти, доступні кількома мовами для генерації сильно типізованих серверів і клієнтів. Підтримує клієнтські, серверні та двосторонні потокові дзвінки. Зменшити використання мережі за допомогою бінарної серіалізації Протобуфа.
Ці переваги роблять 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# Тестування продуктивності відображення, випромінювання, експресіїНаступний:Пізні звіти новачків
|