gRPC nedir?
Kısa cevap
gRPC, servisler arası iletişim için kullanılan bir RPC framework'üdür; HTTP/2 üzerinde çalışır ve mesajları Protocol Buffers (protobuf) ile binary biçimde kodlar. İstemci, başka bir servisteki metodu yerel bir fonksiyon çağırır gibi çağırır; tek istek-yanıtın yanında istemciden, sunucudan ya da iki yönden stream'leri de destekler. HTTP/1.1'e düşemediği için TR7'de bağlantının iki tarafında da HTTP/2 gerekir: HTTP vService'te Frontend Protocol olarak HTTP/2 seçilir, Kurum Servisinde SSL Service açılıp ALPN alanında HTTP 2.0 enabled seçilir ya da şifresiz HTTP/2 (h2c) dinleyen gRPC sunucusu için SSL Service kapalı bırakılıp Cleartext HTTP/2 (h2c) işaretlenir; TR7'nin Kurum Servisine açtığı bağlantı varsayılan olarak HTTP/1.1'dir. TLS'in gRPC sunucusunda sonlanması isteniyorsa L7 TCP vService ile passthrough kullanılır.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| Load Balancer → Load Balancer vService List → HTTP vService formu → Frontend | Protocol → Encrypted (HTTPS) → HTTP/2 | İstemci tarafında HTTP/2 |
| Load Balancer → Backend Services → Kurum Servisi formu | SSL Service, ALPN → HTTP 2.0 enabled (varsayılan HTTP 2.0 disabled) | Kurum Servisi tarafında TLS üzerinden HTTP/2 |
| Load Balancer → Backend Services → Kurum Servisi formu | Cleartext HTTP/2 (h2c) (varsayılan kapalı; SSL Service işaretliyken görüntülenmez) | Kurum Servisi tarafında TLS olmadan HTTP/2 |
| Load Balancer → Load Balancer vService List → L7 TCP vService formu → Frontend | Protocol → TCP | TLS'i açmadan gRPC sunucusuna aktarma (passthrough) |
Her iki yöntemin adım adım yapılandırması ve doğrulaması: gRPC servislerimi TR7 arkasına koyabilir miyim?
Sık Karıştırılan Noktalar
- "Frontend'i HTTP/2 yapmak yeterlidir." TR7'nin Kurum Servisine açtığı bağlantı varsayılan olarak HTTP/1.1'dir; ALPN alanında HTTP 2.0 enabled seçilmezse ya da şifresiz sunucu için Cleartext HTTP/2 (h2c) işaretlenmezse gRPC çağrıları başarısız olur.
- "TR7 Kurum Servisine HTTP/2'yi yalnızca TLS üzerinden kurar." Kurum Servisinde Cleartext HTTP/2 (h2c) işaretlenirse TR7 şifresiz HTTP/2 dinleyen gRPC sunucusuna TLS olmadan HTTP/2 ile bağlanır; bu ayar yalnızca HTTP vService'lerde ve SSL Service kapalıyken etkilidir.
- "gRPC'ye özel bir health check türü vardır." Health check türleri arasında gRPC yoktur; bağlantıyı denetleyen TCP ya da TLS el sıkışmasını da denetleyen TCPS türü kullanılır.
- "Keep header names aksiyonu gRPC ile birlikte kullanılabilir." Keep Header Names bağlı vService'te HTTP/2 kapanır ve gRPC çalışmaz.
Dokümantasyonda nasıl yapılır
