От: | Serginio1 | https://habrahabr.ru/users/serginio1/topics/ | |
Дата: | 25.04.20 09:32 | ||
Оценка: |
Создание канала может потребовать значительных ресурсов. Повторное использование канала для вызовов gRPC обеспечивает выигрыш в производительности.
Клиенты gRPC создаются с помощью каналов. Клиенты gRPC являются облегченными объектами и не нуждаются в кэшировании или повторном использовании.
Из одного канала можно создать несколько клиентов gRPC, включая различные типы клиентов.
Канал и клиенты, созданные из канала, могут безопасно использоваться несколькими потоками.
Клиенты, созданные из канала, могут выполнять несколько одновременных вызовов.
Новые возможности с gRPC-Web
Вызов приложений ASP.NET Core gRPC из браузера — API браузера не могут вызывать gRPC HTTP/2. gRPC-Web предлагает совместимую альтернативу.
JavaScript SPA
Приложения .NET Blazor Web Assembly
Размещать приложения ASP.NET Core gRPC в IIS и службе приложений Azure. Некоторые серверы, такие как IIS и служба приложений Azure, в настоящее время не могут размещать службы gRPC. В то время как над этим активно работают, gRPC-Web предлагает интересную альтернативу, которая сегодня работает в любой среде.
Вызов gRPC с платформ, отличных от .NET Core. Некоторые платформы .NET HttpClient не поддерживают HTTP/2. gRPC-Web может использоваться для вызова сервисов gRPC на этих платформах (например, Blazor WebAssembly, Xamarin).
Обратите внимание, что gRPC-Web требует небольших затрат на производительность, и две функции gRPC больше не поддерживаются: клиентская потоковая передача и двусторонняя потоковая передача. (потоковая передача на сервер все еще поддерживается!)