A három domináns lehetőség a REST (HTTP/JSON), a gRPC (HTTP/2 + Protobuf) és az üzenetsorok (Kafka/RabbitMQ). A REST és a gRPC szinkron; a sorok aszinkron.
A három domináns lehetőség a REST (HTTP/JSON), a gRPC (HTTP/2 + Protobuf) és az üzenetsorok (Kafka/RabbitMQ). A REST és a gRPC szinkron; a sorok aszinkron.
| Szempont | REST | gRPC | Message Queue |
|---|
| Stílus | Sync | Sync | Async |
| Adattartalom | JSON (text) | Protobuf (binary) | Any (often binary) |
| Teljesítmény | Good | High | High throughput |
| Szerződés | OpenAPI (loose) | .proto (strict) | Schema/event |
| Streaming | Limited | Native (bidi) | Pub/sub |
| Legjobb | Public APIs, browsers | Internal hot paths | Decoupling, events |
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)
A szinkron gRPC/REST mindenhol való használata szoros csatolást hoz létre újra; az aszinkron használata a felhasználó azonnali olvasásához szükségtelen késleltetést ad hozzá.
A szállítás megválasztása beállítja a csatolást és a teljesítménybeli korlátot minden interakciónál, így az egyes felhasználási eset szerinti választás — nem globálisan — az, ami a rendszert gyorsnak és rugalmasnak tartja.
A kiforrott rendszerek szándékosan keverik mindhárom lehetőséget: gRPC a belső forró útvonalakon, REST a szélén, és sorok a munkafolyamatokhoz.