Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

GRPC

Зачем

  • Http/2
    • используется одно TCP-соединение, переиспользования одного cокета для нескольких параллельных запросов
    • полного сжатия данных
    • контроль трафика
    • инициации событий с сервера
  • поддержка отмены запроса и таймаутов из коробки
    • сервер может узнать, как об отмене запроса, так и об истечении таймаута и перестать выполнять запрос на своей стороне
  • поддержка как одиночных вызовов, так и стриминга
  • описание сообщений и самих сервисов осуществляется через некий Interface Definition Language или IDL
  • клиент и сервер генерируются при помощи proto-компилятора и gRPC-плагина на основе proto-описания
  • Bi-directional
  • High perf protobuf binary format