|
|
2021-3-22 tarihinde 16:45:16 tarihinde yayınlandı
|
|
|
|

gRPC, dil bağımsız yüksek performanslı uzaktan işlem çağrısı (RPC) çerçevesidir.
gRPC'nin başlıca faydaları şunlardır:
Modern, yüksek performanslı, hafif RPC çerçevesi. Varsayılan olarak protokol tamponlarını kullanan, dil bağımsız uygulamalara olanak tanıyan sözleşme öncelikli API geliştirme. Güçlü tipli sunucular ve istemci oluşturmak için birden fazla dilde mevcut araçlar. İstemci, sunucu ve iki yönlü akış çağrılarını destekler. Protobuf ikili serileştirme ile ağın kullanımını azaltın.
Bu avantajlar gRPC'yi şu amaçlar için uygun kılar:
Verimliliğin kritik olduğu hafif mikroservisler. Geliştirme için birden fazla dil gerektiren çok dilli sistemler. Akış isteği veya yanıtlarını yönetmesi gereken eşler arası gerçek zamanlı hizmetler.
Eleştiri:
ASP.NET Core 3.1 kullanıldığında, bir gRPC servisi etkinleştirilir ve HTTP/2 uç noktası TLS koruması olmadan yapılandırılır, bkz:Bağlantı girişi görünür.
.NET Core 3.1 konsolunu kullanarak HTTP gRPC servis adresini çağırmaya çalıştım ama aşağıdaki hatayla karşılaştım:
Çözülemeyen istisna. Grpc.Core.RpcException: Status(StatusCode="Unavailable", Detail="gRPC çağrısının başlatılmasında hata. HttpRequestException: İstek gönderilirken bir hata meydana geldi. IOException: Yanıt erken sona erdi.", DebugException="System.Net.Http.HttpRequestException: Istek gönderilirken bir hata meydana geldi. ---> System.IO.IOException: Yanıt erken sona erdi.
Uygulamanızın kullandığı .NET sürümüne bağlı olarak, güvensiz bir gRPC servisi çağırmak için bazı ek gereksinimler vardır:
.NET 5 veya daha yeni sürümler Grpc.Net.Client sürüm 2.32.0 veya daha üzerini gerektirir. .NET Core 3.x ek yapılandırma gerektirir. Uygulama, System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport anahtarını doğru olarak ayarlamalıdır:
İstemci ayarları aşağıdaki gibidir:
Yalnızca .NET Core 3.x, System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport anahtarını gerektirir. .NET 5'te ek yapılandırma gerekmez ve bu gereksinim de yoktur。
Bağlantı girişi görünür.
|
Önceki:.NET/C# Yansıtma, Emit, İfade performans testiÖnümüzdeki:Geç kalan yeni katılımcı raporları
|