gRPC nedir?
- Go kursu
- İleri seviye
- Ders 37/68
- 4 dk
gRPC ve protobuf'un temel avantajlarını öğrenirsin.
gRPC nedir?
gRPC, Google'ın geliştirdiği bir uzak prosedür çağrısı (RPC) çerçevesidir. İstemci, sunucudaki bir fonksiyonu yerel fonksiyon çağırır gibi çağırır. Taşıma için HTTP/2, veri biçimi için Protocol Buffers kullanır; bu yüzden JSON'lu REST'e göre daha küçük ve hızlı mesajlar üretir.
// istemci tarafında
resp, err := client.Selam(ctx, &pb.SelamIstek{Ad: "Ada"})Dört çağrı türü
gRPC dört iletişim biçimi sunar: tekli (bir istek, bir yanıt), sunucu akışı (bir istek, çok yanıt), istemci akışı (çok istek, bir yanıt) ve çift yönlü akış. Mikroservisler arası iç iletişimde yaygındır; tarayıcıdan doğrudan kullanmak için gRPC-Web gibi ek katman gerekir.
Uygulama RPC benzetimi
gRPC çağrısının özünü taklit et: type SelamServer struct{} ve func (SelamServer) Selam(ad string) string yöntemi "Merhaba " + ad döndürsün. main içinde SelamServer{}.Selam("Ada") sonucunu yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
type SelamServer struct{}
func (SelamServer) Selam(ad string) string { return "Merhaba " + ad }
func main() {
fmt.Println(SelamServer{}.Selam("Ada"))
}Beklenen çıktı
Merhaba Ada
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 gRPC hangi taşıma protokolünü kullanır?
- FTP
- SMTP
- HTTP/2 Doğru cevap
- HTTP/1.0
Açıklama: HTTP/2 tek bağlantı üzerinde çoklu akış ve çift yönlü streaming sağlar; gRPC bunun üzerine kuruludur.
2 Veri biçimi
// selam.proto
syntax = "____";
// selam.proto
syntax = "proto3";
Açıklama: Protocol Buffers ikili ve şemalı bir biçimdir; JSON'dan küçük ve hızlıdır.
3 Çağrı türleri
| Kavram | Anlamı |
|---|---|
Unary |
1 istek, 1 yanıt |
Server streaming |
1 istek, çok yanıt |
Client streaming |
Çok istek, 1 yanıt |
Bidirectional |
İki yönlü akış |