gRPC ? Сильные и слабые стороны.
ASP.NET Core теперь позволяет разработчикам создавать сервисы gRPC.
gRPC — это современная высокопроизводительная среда RPC с открытым исходным кодом, которая может работать в любой среде. Она может эффективно соединять сервисы внутри и между центрами обработки данных с помощью подключаемой поддержки для балансировки нагрузки, трассировки, проверки работоспособности и аутентификации. gRPC интегрируется с
ASP.NET Core 3.0, поэтому вы можете использовать существующие схемы ведения журналов, конфигурации и аутентификации
ASP.NET Core для создания новых сервисов gRPC.
Сильные стороны gRPC
Производительность
- С помощью сервисов gRPC клиентское приложение может напрямую вызывать методы в серверном приложении на другом компьютере, как если бы это был локальный объект.
- Сообщения gRPC сериализуются с использованием Protobuf, эффективного двоичного формата сообщений. Protobuf очень быстро сериализуется на сервере и клиенте. Сериализация Protobuf приводит к небольшим нагрузкам на сообщения, что важно в сценариях с ограниченной пропускной способностью, таких как мобильные приложения.
Услуги в реальном времени
gRPC обеспечивает первоклассную поддержку потоковой передачи через HTTP/2.
Срок/тайм-ауты и отмена
gRPC позволяет клиентам указывать, как долго они готовы ждать завершения RPC. Срок отправляется на сервер, и сервер может решить , какие действия следует предпринять , если он превышает срок. Например, сервер может отменить текущие запросы gRPC/HTTP/database по таймауту.
Недостатки gRPC
Ограниченная поддержка браузера
gRPC имеет отличную кроссплатформенную поддержку! Реализации gRPC доступны для всех распространенных сегодня языков программирования. Однако одним из мест, откуда вы не можете вызвать службу gRPC, является браузер. gRPC интенсивно использует функции HTTP/2, и ни один браузер не обеспечивает требуемый уровень контроля над веб-запросами для поддержки клиента gRPC.
Не читаем человеком
Сообщения gRPC по умолчанию кодируются с помощью Protobuf. Хотя Protobuf эффективен для отправки и получения, его двоичный формат не читается человеком. Для правильной десериализации Protobuf требуется описание интерфейса сообщения, указанное в файле .proto.