Что такое gRPC
Python
Middle
Без компании
Что такое 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.