System Design Space

    Глава 121

    Обновлено: 14 февраля 2026 г. в 07:19

    RPC, REST, gRPC

    Прогресс части0/17

    Подходы к удалённым вызовам: особенности, различия и сценарии применения.

    Источник

    Remote procedure call

    Определение RPC и ключевые свойства.

    Перейти на сайт

    RPC, REST и gRPC — это разные подходы к удалённым вызовам. Они решают одну задачу: передать запрос через сеть и получить результат, но отличаются стилем интерфейса, уровнем формализации и типичными сценариями применения.

    Источник

    REST

    Архитектурный стиль, основные ограничения и свойства.

    Перейти на сайт

    Визуализация работы подходов

    Выберите подход и посмотрите, как формируется запрос, ответ и контракт между сторонами.

    Как работают удалённые вызовы

    Выберите подход, чтобы увидеть, как строится запрос и ответ

    Запрос и ответ

    Client
    call getUser(id)
    Server
    Client
    User
    Server

    Ключевые свойства

    • Прозрачность вызова процедуры
    • Фокус на методах, а не ресурсах
    • Чаще всего бинарная сериализация

    Что важно помнить

    Клиент вызывает метод, как локальный
    Запрос и ответ похожи на функции
    Обычно request-response
    Все три подхода опираются на клиент-серверный обмен и сериализацию данных.

    Источник

    gRPC basics

    Сервисы, proto-контракты и типы RPC вызовов.

    Перейти на сайт

    Что у них общего

    • Работают по модели клиент-сервер и передают запросы по сети.
    • Используют сериализацию данных и контракт между клиентом и сервером.
    • Требуют описания ошибок, таймаутов и ретраев.

    Чем отличаются

    RPC

    • Фокус на вызове метода, как локальной функции.
    • Удобно для внутренних сервисов и бинарных протоколов.
    • Часто сильнее связаны клиент и сервер.

    REST

    • Фокус на ресурсах и HTTP методах.
    • Статeless и хорошо кэшируется.
    • Лучше для публичных API и интеграций.

    gRPC

    • Контракт описывается в .proto и генерирует код.
    • Поддерживает streaming вызовы.
    • Хорошо подходит для микросервисов.

    Когда что выбирать

    • RPC удобен для внутренних сервисов, где важна скорость и компактные контракты.
    • REST подходит для публичных API и интеграций, где важны кэширование и совместимость.
    • gRPC хорош для микросервисов, когда нужен строгий контракт и streaming.