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