Встречается на собеседованиях • сегодня
Что такое gRPC
gRPC — это высокопроизводительный фреймворк для удаленного вызова процедур (RPC) от Google, использующий HTTP/2 и Protocol Buffers (protobuf) для сериализации данных.
**Ключевые особенности:**
- **Языковая независимость** — поддерживает множество языков (Java, Go, Python и др.).
- **Бинарный протокол** — protobuf обеспечивает компактность и скорость.
- **4 типа взаимодействия** — унарный, серверный поток, клиентский поток, двунаправленный поток.
**Пример (Java):**
1. **Определение сервиса в `.proto`:**
```protobuf
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
message HelloRequest { string name = 1; }
message HelloReply { string message = 1; }
```
2. **Сервер:**
```java
public class GreeterImpl extends GreeterGrpc.GreeterImplBase {
@Override
public void sayHello(HelloRequest req, StreamObserver responseObserver) {
HelloReply reply = HelloReply.newBuilder().setMessage("Hello " + req.getName()).build();
responseObserver.onNext(reply);
responseObserver.onCompleted();
}
}
```
3. **Клиент:**
```java
ManagedChannel channel = ManagedChannelBuilder.forTarget("localhost:8080").usePlaintext().build();
GreeterGrpc.GreeterBlockingStub stub = GreeterGrpc.newBlockingStub(channel);
HelloReply reply = stub.sayHello(HelloRequest.newBuilder().setName("World").build());
```
**Используется** в микросервисах, межсервисном взаимодействии, где важны низкие задержки и высокая пропускная способность.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы