91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.Net Core3.0如何使用gRPC

發布時間:2021-07-30 16:28:21 來源:億速云 閱讀:124 作者:Leah 欄目:大數據

.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服務項目模板

.Net Core3.0如何使用gRPC

最終生成的項目

.Net Core3.0如何使用gRPC

greet.proto文件
syntax = "proto3";
option csharp_namespace = "AA.GrpcService";
package Greet;
// The greeting service definition.service Greeter {  // Sends a greeting  rpc SayHello (HelloRequest) returns (HelloReply);}
// The request message containing the user's name.message HelloRequest {  string name = 1;}
// The response message containing the greetings.message HelloReply {  string message = 1;}
GreeterService.cs

public class GreeterService : Greeter.GreeterBase    {        private readonly ILogger<GreeterService> _logger;        public GreeterService(ILogger<GreeterService> logger)        {            _logger = logger;        }
       public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)        {            return Task.FromResult(new HelloReply            {                Message = "Hello " + request.Name            });        }    }
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

運行服務

.Net Core3.0如何使用gRPC

創建gRPC客戶端

下面,我們創建一個控制臺應用程序作為客戶端調用gRPC服務;

.Net Core3.0如何使用gRPC

引用gRPC服務,步驟:右鍵項目添加=》服務引用彈出以下頁面;

.Net Core3.0如何使用gRPC

點擊確定

.Net Core3.0如何使用gRPC

.Net Core3.0如何使用gRPC

我們看項目結構,他們會自動幫我們處理一下操作:
  • 添加引用包:

  1.  package Grpc.Net.ClientFactory

  2.  package Google.Protobuf

  3.  package Grpc.Tools

  • Protos 文件(包含greet.proto)自動從AA.GrpcService項目拷貝

  • 自動添加節點

<ItemGroup>    <Protobuf Include="..\AA.GrpcService\Protos\greet.proto" GrpcServices="Client">      <Link>Protos\greet.proto</Link>    </Protobuf>  </ItemGroup>
最后,添加以下代碼進行gRPC請求;

class Program    {        static async Task Main(string[] args)        {            using var channel = GrpcChannel.ForAddress("https://localhost:5005");            var client = new Greeter.GreeterClient(channel);            var response = await client.SayHelloAsync(new HelloRequest { Name = "gRPC" });            Console.WriteLine("Greeting:" + response.Message);            Console.WriteLine("Press a key to exit");            Console.ReadKey();        }    }

運行結果圖:

.Net Core3.0如何使用gRPC

關于.Net Core3.0如何使用gRPC問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆回县| 贵溪市| 广平县| 封丘县| 板桥市| 晋城| 黑龙江省| 海安县| 安达市| 惠安县| 延寿县| 天镇县| 门源| 博罗县| 东兰县| 渑池县| 屏东市| 江北区| 呼玛县| 瑞金市| 兴业县| 罗源县| 敦煌市| 宁津县| 三江| 出国| 延庆县| 修武县| 平定县| 资讯| 白银市| 和林格尔县| 龙口市| 临清市| 清水县| 桃园县| 达州市| 纳雍县| 武鸣县| 东乡县| 乐安县|