Uživatelské nástroje

Nástroje pro tento web


grpc

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:

  • HTTP/2: Využívá nejnovější verzi protokolu HTTP, která umožňuje binární přenos, multiplexování (více požadavků po jednom spojení) a streamování dat.
  • Protocol Buffers (Protobuf): Místo textového formátu (JSON/XML) používá binární serializační formát. Data jsou díky tomu menší a jejich zpracování je mnohem rychlejší.

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

grpc.txt · Poslední úprava: autor: admin