gRPC (Remote Procedure Call от Google)¶
gRPC — фреймворк для написания многоязычных клиентов и серверов
Представляет собой двоичный протокол на основе сообщений.
В gRPC API описывается с помощью IDL на основе Protocol Buffers — многоязычного механизма сериализации структурированных данных от Google. Компилятор Protocol Buffer генерирует клиентские заглушки и серверные каркасы. Клиент и сервер обмениваются сообщениями в формате Protocol Buffers, используя HTTP/2.
gRPC API поддерживает следующие подвиды коммуникации “запрос-ответ”:
- унарный вызов — одно сообщение запроса, одно сообщение ответа;
- клиентский поток — клиент отправляет поток сообщений одной структуры, сервер обрабатывает его и возвращает результат;
- серверный поток — в ответ на запрос клиента возвращается поток сообщений одной структуры;
- двунаправленный поток — клиент отправляет поток сообщений одной структуры, сервер, не дожидаясь завершения отправки клиентского потока, отправляет поток сообщений на клиент.
Преимущества¶
- Позволяет легко спроектировать API с богатым набором операций обновления
- Имеет эффективный компактный механизм, что особенно явно проявляется при обмене крупными сообщениями
- Поддержка двунаправленных потоков делает возможными стили взаимодействия на основе RPI и обмена сообщениями
- Позволяет сохранять совместимость между клиентами и сервисами, написанными на разных языках
Недостатки¶
- Процесс работы с API, основанном на gRPC оказывается для Javascript клиентов более трудоёмким, чем с API, основанным на REST/JSON
- Старые брандмауэры не поддерживают HTTP/2
Ссылки¶
https://grpc.io/
Конспект книжки “Начала использования gRPC с ASP.NET Core 6”
Последнее обновление :
5 ноября 2023 г.
Дата создания : 10 июля 2022 г.
Дата создания : 10 июля 2022 г.