Obsah

gRPC

gRPC (gRPC Remote Procedure Call) je moderní, vysoce výkonný open-source framework pro vzdálené volání procedur. Původně byl vyvinut společností Google a nyní spadá pod Cloud Native Computing Foundation (CNCF).

Umožňuje klientským a serverovým aplikacím komunikovat spolu tak transparentně, jako by volání vzdálené metody bylo lokální funkcí.

Klíčové technologie

gRPC stojí na dvou pilířích, které mu zajišťují rychlost a efektivitu:

Typy komunikace

Na rozdíl od standardního RESTu, gRPC podporuje čtyři režimy přenosu:

1. Unary: Klasický model požadavek-odpověď.
2. Server streaming: Klient pošle jeden požadavek a server odpovídá proudem dat.
3. Client streaming: Klient posílá proud dat a server odpoví jednou zprávou.
4. Bidirectional streaming: Obě strany posílají proudy dat nezávisle na sobě (obousměrný duplex).

Srovnání: gRPC vs. REST

Vlastnost gRPC REST
Formát dat Binární (Protobuf) Textový (JSON, XML)
Protokol Striktně HTTP/2 HTTP/1.1 nebo HTTP/2
Typování Silné (definované v .proto souboru) Slabé (volitelně JSON Schema)
Rychlost Velmi vysoká (nízká latence) Nižší (režie textového formátu)

Příklad definice služby (.proto)

Služby se v gRPC definují v souborech s příponou `.proto`:

syntax = "proto3";

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

Související pojmy: API, Google, HTTP