gRPC je moderní, vysoce výkonný open-source framework pro vzdálené volání procedur (RPC). Byl vyvinut společností Google a je navržen tak, aby umožňoval klientským a serverovým aplikacím komunikovat napříč různými programovacími jazyky (např. C#, Python, Java, Go).
V architektuře mikroslužeb se gRPC stalo standardem pro vysoce efektivní interní komunikaci.
Vysoký výkon gRPC je dán kombinací dvou technologií:
gRPC definuje čtyři typy metod (servisů):
| Typ | Popis |
|---|---|
| Unary | Klasický model: Klient pošle jeden požadavek a čeká na jednu odpověď. |
| Server Streaming | Klient pošle jeden požadavek a server mu posílá proud zpráv (např. živé výsledky). |
| Client Streaming | Klient posílá proud zpráv a server odpoví jednou souhrnnou zprávou (např. upload souboru). |
| Bidirectional Streaming | Obě strany posílají data nezávisle na sobě v reálném čase (např. chat nebo telemetrie). |
Veškerá logika gRPC začíná definicí v IDL (Interface Definition Language):
syntax = "proto3";
// Definice služby
service Vypocet {
rpc Secti (SestavaCisel) returns (Vysledek) {}
}
// Definice zpráv
message SestavaCisel {
int32 a = 1;
int32 b = 2;
}
message Vysledek {
int32 soucet = 1;
}
— Související pojmy: Mikroslužby, API, Google