Üç baskın seçenek REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf) ve message queues (Kafka/RabbitMQ)'dır. REST ve gRPC eşzamanlı; kuyruklar eşzamansızdır.
Üç baskın seçenek REST (HTTP/JSON), gRPC (HTTP/2 + Protobuf) ve message queues (Kafka/RabbitMQ)'dır. REST ve gRPC eşzamanlı; kuyruklar eşzamansızdır.
| Yön | REST | gRPC | Message Queue |
|---|
| Stil | Senkron | Senkron | Asenkron |
| Yük | JSON (metin) | Protobuf (ikili) | Herhangi (çoğunlukla ikili) |
| Performans | İyi | Yüksek | Yüksek verim |
| Sözleşme | OpenAPI (gevşek) | .proto (katı) | Schema/event |
| Akış | Sınırlı | Yerel (bidi) | Pub/sub |
| En iyi | Genel API'ler, tarayıcılar | İç düşük gecikme | Ayrıştırma, arabelleğe alma, olay odaklı |
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)
Her yerde senkron gRPC/REST kullanmak sıkı bağlantıyı yeniden oluşturur; bir kullanıcının anında okuması için asenkron kullanmak gereksiz gecikme ekler.
Transport seçimi her etkileşim için bağlantı ve performans tavanını belirler, bu nedenle küresel değil, kullanım durumuna göre seçim yapması sistemi hem hızlı hem dayanıklı tutar.
Olgun sistemler kasıtlı olarak üçünü de karıştırırlar: dahili sıcak yollarda gRPC, kenarda REST ve iş akışları için kuyruklar.