REST je standard pro webová API. Ale pro inter-service komunikaci v microservices? gRPC nabízí lepší performance, type safety a bi-directional streaming.
gRPC výhody¶
- Protobuf — binární serializace, 5-10x menší než JSON
- HTTP/2 — multiplexing, header compression, streaming
- Code generation — klient a server z .proto souboru
- Streaming — server-side, client-side, bidirectional
Kdy REST, kdy gRPC¶
REST: public API, browser klienti, jednoduchý CRUD, wide tooling support. gRPC: inter-service komunikace, high-throughput, streaming, polyglot prostředí (type-safe klienti v libovolném jazyce).
Naše zkušenosti¶
Migrovali jsme 5 nejvytíženějších inter-service spojení na gRPC. Latence: -40 %. Bandwidth: -60 %. Code generation eliminuje API mismatch bugy. REST zůstává pro public API a frontend komunikaci.
Není to „buď nebo”¶
gRPC pro inter-service, REST pro external. Oba mají své místo.