Tři dominantní možnosti jsou REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf) a message queues (Kafka/RabbitMQ). REST a gRPC jsou synchronní; fronty jsou asynchronní.
Tři dominantní možnosti jsou REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf) a message queues (Kafka/RabbitMQ). REST a gRPC jsou synchronní; fronty jsou asynchronní.
| Aspekt | REST | gRPC | Message Queue |
|---|
| Styl | Synchronní | Synchronní | Asynchronní |
| Datová část | JSON (text) | Protobuf (binární) | Jakákoliv (často binární) |
| Výkon | Dobrý | Vysoký | Vysoká propustnost |
| Smlouva | OpenAPI (volná) | .proto (přísná) | Schema/event |
| Streamování | Omezené | Nativní (obousměrné) | Pub/sub |
| Nejlepší pro | Veřejná API, prohlížeče | Interní kritické cesty | Oddělení, události |
service OrderService {
// strongly-typed RPC, generated client + server stubs
rpc GetOrder (OrderId) returns (Order);
}
message OrderId { string id = 1; }
message Order { string id = 1; double total = 2; }
Order Service ─publish→ [ "OrderPlaced" topic ] ─▶ Inventory
└────▶ Notifications
(producer doesn't know or wait for consumers)
Používání synchronního gRPC/REST všude znovu vytváří těsné propojení; použití asynchronního pro okamžité čtení uživatele přidává zbytečnou latenci.
Volba přenosu stanovuje propojení a strop výkonu pro každou interakci, takže výběr pro každý případ použití — a ne globálně — je to, co udržuje systém rychlý a odolný.
Zralé systémy záměrně kombinují všechny tři: gRPC na interních kritických cestách, REST na hranici a fronty pro pracovní postupy.