GRPC

Простыми словами

gRPC — механизм удалённых вызовов, в котором контракт сервиса описывается Protocol Buffers, а клиент вызывает типизированные методы почти как локальные функции. Обычно транспортом служит HTTP/2, включая потоковые режимы обмена.

Как применяется

gRPC применяют между микросервисами и системами с формальным контрактом и высокой производительностью. Защита включает TLS или mTLS, проверку полномочий на каждый метод, ограничения размера и времени, безопасную обработку метаданных и наблюдаемость вызовов.

Пример применения

Платёжный сервис вызывает метод ReserveFunds по защищённому каналу mTLS. Сервер проверяет идентичность сервисной нагрузки, право на вызов и допустимую сумму, ограничивает время выполнения и связывает запрос с трассировкой, не записывая токен в журнал.

Не путать с

  • RESTREST чаще моделирует ресурсы и HTTP-семантику.

Как это работает

  1. Описать контрактВ .proto задают сервисы, методы, сообщения и правила совместимости полей.
  2. Сгенерировать клиентИнструменты создают типизированные stubs для выбранных языков.
  3. Выполнить вызовКлиент устанавливает защищённый канал, передаёт метаданные и сериализованное сообщение.
  4. Обработать результатСервер авторизует метод, выполняет операцию и возвращает ответ или статус, наблюдаемость связывает обе стороны.

Продолжить изучение

Частые вопросы

gRPC всегда использует HTTP/2?

Это основной транспорт стандартной реализации, но детали зависят от платформы и прокси; совместимость проверяют по всей цепочке.

Можно ли открыть gRPC напрямую в браузере?

Обычный браузер имеет ограничения; часто используют gRPC-Web и промежуточный прокси.

Как версионировать protobuf?

Не переиспользуют номера удалённых полей, сохраняют совместимые изменения и проверяют одновременную работу старых и новых клиентов.

gRPC — высокопроизводительный RPC-фреймворк, обычно использующий HTTP/2 и контрактное описание сервисов.