.Net Core3.0使用gRPC
gRPC是什么
gRPC是可以在任何環境中運行的現代開源高性能RPC框架。它可以通過可插拔的支持來有效地連接數據中心內和跨數據中心的服務,以實現負載平衡,跟蹤,運行狀況檢查和身份驗證。它也適用于分布式計算的最后一英里,以將設備,移動應用程序和瀏覽器連接到后端服務。
proto文件
用于定義gRPC服務和消息的協定;服務端和客戶端共享proto文件。
使用新模板創建gRPC服務端
.NETcore 3.0創建項目提供了一個新的gRPC模板,可以輕松地使用ASP.NET?Core構建gRPC服務。我們按照步驟一步一步創建AA.GrpcService 服務,當然你可以使用命令:dotnet new grpc -o GrpcGreeter
?選擇gRPC服務項目模板
最終生成的項目
greet.proto文件
GreeterService.cs
Startup.cs
public void ConfigureServices(IServiceCollection services) { services.AddGrpc(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGrpcService<GreeterService>(); endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909"); }); }); }創建完成之后,自動包含了包的引用、proto文件的創建、services服務的生成,模板項目在后臺執行一些操作如
創建一個包含所有gRPC依賴項的ASP.NET?Core項目。
創建一個名為的gRPC服務定義文件greet.proto。
根據服務定義文件自動生成所有gRPC存根。
GreeterService.cs根據自動生成的gRPC存根創建gRPC服務。
在Startup.cs中配置gRPC管道映射到GreeterService.cs
運行服務
創建gRPC客戶端
下面,我們創建一個控制臺應用程序作為客戶端調用gRPC服務;
引用gRPC服務,步驟:右鍵項目添加=》服務引用彈出以下頁面;
點擊確定
我們看項目結構,他們會自動幫我們處理一下操作:
添加引用包:
?package?Grpc.Net.ClientFactory
?package Google.Protobuf
?package Grpc.Tools
Protos 文件(包含greet.proto)自動從AA.GrpcService項目拷貝
自動添加節點
運行結果圖:
小結:.NETcore 3.0 使得使用gRPC是非常方便集成到項目中,希望這篇文章使你可以了解.NETcore與gRPC結合使用。那gRPC適用于以下場景
微服務– gRPC專為低延遲和高吞吐量通信而設計。gRPC對于效率至關重要的輕量級微服務非常有用。
點對點實時通信– gRPC對雙向流具有出色的支持。gRPC服務可以實時推送消息而無需輪詢。
多種語言環境– gRPC工具支持所有流行的開發語言,因此gRPC是多語言環境的理想選擇。
網絡受限的環境– gRPC消息使用輕量級消息格式Protobuf進行了序列化。gRPC消息始終小于等效的JSON消息。
參考:
https://docs.microsoft.com/zh-cn/aspnet/core/grpc/?view=aspnetcore-3.0
https://www.grpc.io/
https://developers.google.com/protocol-buffers/docs/proto3
https://www.cnblogs.com/stulzq/p/11581967.html
相關文章
總結
以上是生活随笔為你收集整理的.Net Core3.0使用gRPC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零开始实现ASP.NET Core M
- 下一篇: 中国.NET开发者峰会特别活动-基于k8