|
|
Опубликовано 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="Недоступно", 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# Тестирование производительности отражения, излучения, выраженияСледующий:Поздние новостные сообщения
|