Что такое gRPC

Python Senior СБЕР Роботы
Что такое gRPC
Ответы
gRPC — это современный фреймворк для удалённого вызова процедур (RPC), разработанный Google. Он использует Protocol Buffers (protobuf) как язык описания интерфейсов и бинарный формат для передачи данных, что делает его более эффективным по сравнению с REST/JSON. **Ключевые особенности:** - Работает поверх HTTP/2 (мультиплексирование, потоковая передача). - Поддерживает несколько языков (Python, Go, Java и др.). - Генерация клиентского и серверного кода из `.proto`-файлов. - 4 типа взаимодействия: унарный, серверный поток, клиентский поток, двунаправленный поток. **Пример (Python):** - Описание сервиса в `example.proto`: ``` service Greeter { rpc SayHello (HelloRequest) returns (HelloReply); } message HelloRequest { string name = 1; } message HelloReply { string message = 1; } ``` - Генерация кода: ``` python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. example.proto ``` - Реализация сервера: ``` class Greeter(example_pb2_grpc.GreeterServicer): def SayHello(self, request, context): return example_pb2.HelloReply(message=f"Hello, {request.name}!") ``` **Плюсы:** высокая производительность, строгая типизация. **Минусы:** сложнее отладки, чем REST.