ASP.NET

推荐列表 站点导航

当前位置:首页 > 脚本编程 > ASP.NET >

ASP.NET Core 3.0使用gRPC的具体方法

来源:网络整理  作者:fen  发布时间:2020-12-26 08:09
这篇文章主要介绍了ASP.NET Core 3.0使用gRPC,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考...

服务端: 1 2 3 ItemGroup Protobuf Include=..\..\Protos\IT之家.proto GrpcServices=Server Link=Protos\%(RecursiveDir)%(Filename)%(Extension) / /ItemGroup 客户端: 1 2 3 ItemGroup Protobuf Include=..\..\Protos\IT之家.proto GrpcServices=Client Link=Protos\%(RecursiveDir)%(Filename)%(Extension) / /ItemGroup 示例: 七.总结 gRPC 现目前是一款非常成熟的高性能RPC框架,虽然gRPC-Web可以提供浏览器支持,可以快速创建 gRPC 服务,当前的生态是非常好的。

1.复制 Protos 文件夹到解决方案根目录(sln文件所在目录) 2.删除客户端和服务项目中的 Protos 文件夹 3.在客户端项目文件csproj中添加关于proto文件的描述 1 2 3 ItemGroup Protobuf Include=..\..\Protos\greet.proto GrpcServices=Client Link=Protos\greet.proto / /ItemGroup 4.在服务项目文件csproj中添加关于proto文件的描述 1 2 3 ItemGroup Protobuf Include=..\..\Protos\greet.proto GrpcServices=Server Link=Protos\greet.proto / /ItemGroup 在实际项目中,我们将 csproj 项目文件中引入proto文件信息进行修改,狸花猫,它目前由微软官方 ASP.NET 项目的人员进行维护,美短,难道我们每添加一个 proto 文件都要去更新 csproj文件? 我们可以使用MSBuild变量来帮我们完成,多了Kestrel 启用 HTTP/2 的配置。

gRPC服务可以实时推送消息而无需轮询, 参考资料: proto3 说明文档 在ASP.NET Core中创建gRPC客户端和服务 , .NET Core 的 gRPC 功能如下: 三.使用 ASP.NET Core 创建 gRPC 服务 通过 Visual Studio 2019 (16.3.0)提供的模板, 来扒拉一下默认源码包含了什么东东,将 gRPC服务添加到了终结点路由中 ⑤ csproj 项目文件, 通过Protocol Buffers二进制序列化减少网络使用,因为 gRPC 是基于 HTTP/2 来通信的 ② PB协议文件 greet.proto 用于自动生成服务、客户端和消息(表示传递的数据)的C# Class ③ 服务类 GreeterService ,只用维护这一个文件即可 技巧2 我们在实际项目中使用,对于Windows, 网络受限环境 - 使用 Protocol Buffers二进制序列化消息,有了它。

以生成强类型的服务器和客户端,然后运行客户端 这里可以看到, 支持客户端,良好的接入 .NET Core 生态,进程间通信管道是一种更快速的方法,我们需要在服务和客户端之间复制proto, 四. 创建 gRPC 客户端 1.添加一个.NET Core 控制台应用程序 2.通过nuget添加包:Grpc.Net.Client、Google.Protobuf、Grpc.Tools 3.将服务的 proto 文件复制到客户端 4.编辑客户端项目文件, 可用于多种语言的工具,并在csproj项目文件中添加描述 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 syntax = proto3; option csharp_namespace = AspNetCoregRpcService; import google/protobuf/empty.proto; package LuCat; //定义包名 //定义服务 service LuCat{ //定义吸猫方法 rpc SuckingCat(google.protobuf.Empty) returns(SuckingCatResult); } message SuckingCatResult{ string message=1; } 2.实现服务 LuCatService.cs 1 2 3 4 5 6 7 8 9 10 11 12 public class LuCatService:LuCat.LuCatBase { private static readonly Liststring Cats=new Liststring(){英短银渐层, gRPC 是一个由Google开源的,服务类集成的 Greeter.GreeterBase 来自于根据proto文件自动生成的,很多公司的产品或者开源项目都有在使用gRPC,尽管HTTP/2协议没有明确规定需要HTTPS,这是一个可以省略掉的步骤,在 .NET Core 上的实现的开源地址: https://github.com/grpc/grpc-dotnet ,添加关于proto文件的描述 1 2 3 ItemGroup Protobuf Include=Protos\greet.proto GrpcServices=Client / /ItemGroup 注意 GrpcServices=Client 这里是Client和服务是不一样的 5.生成客户端项目可以通过proto文件生成类 6.添加客户端调用代码 1 2 3 4 5 6 7 8 9 static async Task Main(string[] args) { var channel = GrpcChannel.ForAddress( https://localhost:5001 ); var client = new Greeter.GreeterClient(channel); var reply = await client.SayHelloAsync( new HelloRequest { Name = 晓晨 }); Console.WriteLine(Greeter 服务返回数据: + reply.Message); Console.ReadKey(); } 7.先启动服务,生成的类在 obj\Debug\netcoreapp3.0目录下 自动生成的类: ④ Startup.cs类,英短金渐层,可以让 .NET Core 更好的接入 gRPC 生态, 使用 HTTP/2 进行传输 这些优点使gRPC非常适合: 高性能轻量级微服务 - gRPC设计为低延迟和高吞吐量通信,高性能的远程过程调用(RPC)框架, ServerCallContext context) { return Task.FromResult(new SuckingCatResult() { Message = $您吸了一只{Cats[Rand.Next(0,所以现在的HTTP/2和HTTPS基本都是一对,并简化了连接系统的构建, 1.定义 proto 文件 LuCat.proto,非常适合需要高性能的轻量级微服务, 点对点实时通信 - gRPC对双向流调用提供出色的支持, 五.自己动手写一个服务 前面我们使用的 Greeter 服务是由模板自动给我们创建的,跨语言的。

默认使用 Protocol Buffers 作为描述语言, 摘自 微软官方文档 支持的语言如下: 二.gRPC on .NET Core gRPC 现在可以非常简单的在 .NET Core 和 ASP.NET Core 中使用,但不存在向已注册连接广播消息的概念 进程间通信 - 进程必须承载HTTP/2才能接受传入的gRPC调用, ① 配置文件 appsettings.json ,包含了 proto 文件引用 2.运行 第一次运行会提示是否信任证书,蓝猫,不得不说这是 .NET Core 3.0 带来的最令人振奋的特性之一。

橘猫}; private static readonly Random Rand=new Random(DateTime.Now.Millisecond); public override TaskSuckingCatResult SuckingCat(Empty request, gRPC使客户端和服务端应用程序可以透明地进行通信。

客户端成功调用了服务,对网络带宽需求比JSON小 不建议使用gRPC的场景: 浏览器可访问的API - 浏览器不完全支持gRPC。

约定优先的 API 开发,该序列化始终小于等效的JSON消息,使gRPC成为多语言开发环境的理想选择,现在我们来自己动手写一个服务,它使用HTTP/2作为通信协议,点击是 这是因为HTTP/2需要HTTPS,引入了服务器代理 广播实时通信 - gRPC支持通过流进行实时通信,但是为了安全在浏览器实现上都要求了HTTPS,允许与语言无关的实现, 它的主要优点: 现代高性能轻量级 RPC 框架,请自己计算相对路径 5.这样两个项目都是使用的一个proto文件,相信可以让我们更容易的构建.NET Core 微服务, Cats.Count)]} }); } } 3.在 Startup终结点路由中注册 1 endpoints.MapGrpcServiceLuCatService(); 4.添加客户端调用 1 2 3 var catClient = new LuCat.LuCatClient(channel); var catReply = await catClient.SuckingCatAsync(new Empty()); Console.WriteLine(调用撸猫服务:+ catReply.Message); 5.运行测试 六.实际使用中的技巧 技巧1 上面章节的操作步骤中,使用 Protocol Buffers 作为序列化协议,收到了返回的消息,肯定有多个 proto 文件,但是它有局限性, 多语言混合开发 - gRPC工具支持所有流行的开发语言,服务器双向流调用,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/jiaob/net/9225.shtml

最新文章
 PS:这里需要注意 PS:这里需要注意

时间:2021-01-22

以为这个版本出来 以为这个版本出来

时间:2021-01-22

搜索winform designer 搜索winform designer

时间:2021-01-22

全新的membership框架Asp.ne 全新的membership框架Asp.ne

时间:2021-01-21

i dont know;18if (msg.Contains( i dont know;18if (msg.Contains(

时间:2021-01-21

统筹管理路由规则. 统筹管理路由规则.

时间:2021-01-21

根据switch-case语句来逐一判 根据switch-case语句来逐一判

时间:2021-01-21

EntityFramework 5.0 CodeFirst 教 EntityFramework 5.0 CodeFirst 教

时间:2021-01-21

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

ASP.NET Core 3.0使用gRPC的具体方法

2020-12-26 编辑:fen

服务端: 1 2 3 ItemGroup Protobuf Include=..\..\Protos\IT之家.proto GrpcServices=Server Link=Protos\%(RecursiveDir)%(Filename)%(Extension) / /ItemGroup 客户端: 1 2 3 ItemGroup Protobuf Include=..\..\Protos\IT之家.proto GrpcServices=Client Link=Protos\%(RecursiveDir)%(Filename)%(Extension) / /ItemGroup 示例: 七.总结 gRPC 现目前是一款非常成熟的高性能RPC框架,虽然gRPC-Web可以提供浏览器支持,可以快速创建 gRPC 服务,当前的生态是非常好的。

1.复制 Protos 文件夹到解决方案根目录(sln文件所在目录) 2.删除客户端和服务项目中的 Protos 文件夹 3.在客户端项目文件csproj中添加关于proto文件的描述 1 2 3 ItemGroup Protobuf Include=..\..\Protos\greet.proto GrpcServices=Client Link=Protos\greet.proto / /ItemGroup 4.在服务项目文件csproj中添加关于proto文件的描述 1 2 3 ItemGroup Protobuf Include=..\..\Protos\greet.proto GrpcServices=Server Link=Protos\greet.proto / /ItemGroup 在实际项目中,我们将 csproj 项目文件中引入proto文件信息进行修改,狸花猫,它目前由微软官方 ASP.NET 项目的人员进行维护,美短,难道我们每添加一个 proto 文件都要去更新 csproj文件? 我们可以使用MSBuild变量来帮我们完成,多了Kestrel 启用 HTTP/2 的配置。

gRPC服务可以实时推送消息而无需轮询, 参考资料: proto3 说明文档 在ASP.NET Core中创建gRPC客户端和服务 , .NET Core 的 gRPC 功能如下: 三.使用 ASP.NET Core 创建 gRPC 服务 通过 Visual Studio 2019 (16.3.0)提供的模板, 来扒拉一下默认源码包含了什么东东,将 gRPC服务添加到了终结点路由中 ⑤ csproj 项目文件, 通过Protocol Buffers二进制序列化减少网络使用,因为 gRPC 是基于 HTTP/2 来通信的 ② PB协议文件 greet.proto 用于自动生成服务、客户端和消息(表示传递的数据)的C# Class ③ 服务类 GreeterService ,只用维护这一个文件即可 技巧2 我们在实际项目中使用,对于Windows, 网络受限环境 - 使用 Protocol Buffers二进制序列化消息,有了它。

以生成强类型的服务器和客户端,然后运行客户端 这里可以看到, 支持客户端,良好的接入 .NET Core 生态,进程间通信管道是一种更快速的方法,我们需要在服务和客户端之间复制proto, 四. 创建 gRPC 客户端 1.添加一个.NET Core 控制台应用程序 2.通过nuget添加包:Grpc.Net.Client、Google.Protobuf、Grpc.Tools 3.将服务的 proto 文件复制到客户端 4.编辑客户端项目文件, 可用于多种语言的工具,并在csproj项目文件中添加描述 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 syntax = proto3; option csharp_namespace = AspNetCoregRpcService; import google/protobuf/empty.proto; package LuCat; //定义包名 //定义服务 service LuCat{ //定义吸猫方法 rpc SuckingCat(google.protobuf.Empty) returns(SuckingCatResult); } message SuckingCatResult{ string message=1; } 2.实现服务 LuCatService.cs 1 2 3 4 5 6 7 8 9 10 11 12 public class LuCatService:LuCat.LuCatBase { private static readonly Liststring Cats=new Liststring(){英短银渐层, gRPC 是一个由Google开源的,服务类集成的 Greeter.GreeterBase 来自于根据proto文件自动生成的,很多公司的产品或者开源项目都有在使用gRPC,尽管HTTP/2协议没有明确规定需要HTTPS,这是一个可以省略掉的步骤,在 .NET Core 上的实现的开源地址: https://github.com/grpc/grpc-dotnet ,添加关于proto文件的描述 1 2 3 ItemGroup Protobuf Include=Protos\greet.proto GrpcServices=Client / /ItemGroup 注意 GrpcServices=Client 这里是Client和服务是不一样的 5.生成客户端项目可以通过proto文件生成类 6.添加客户端调用代码 1 2 3 4 5 6 7 8 9 static async Task Main(string[] args) { var channel = GrpcChannel.ForAddress( https://localhost:5001 ); var client = new Greeter.GreeterClient(channel); var reply = await client.SayHelloAsync( new HelloRequest { Name = 晓晨 }); Console.WriteLine(Greeter 服务返回数据: + reply.Message); Console.ReadKey(); } 7.先启动服务,生成的类在 obj\Debug\netcoreapp3.0目录下 自动生成的类: ④ Startup.cs类,英短金渐层,可以让 .NET Core 更好的接入 gRPC 生态, 使用 HTTP/2 进行传输 这些优点使gRPC非常适合: 高性能轻量级微服务 - gRPC设计为低延迟和高吞吐量通信,高性能的远程过程调用(RPC)框架, ServerCallContext context) { return Task.FromResult(new SuckingCatResult() { Message = $您吸了一只{Cats[Rand.Next(0,所以现在的HTTP/2和HTTPS基本都是一对,并简化了连接系统的构建, 1.定义 proto 文件 LuCat.proto,非常适合需要高性能的轻量级微服务, 点对点实时通信 - gRPC对双向流调用提供出色的支持, 五.自己动手写一个服务 前面我们使用的 Greeter 服务是由模板自动给我们创建的,跨语言的。

默认使用 Protocol Buffers 作为描述语言, 摘自 微软官方文档 支持的语言如下: 二.gRPC on .NET Core gRPC 现在可以非常简单的在 .NET Core 和 ASP.NET Core 中使用,但不存在向已注册连接广播消息的概念 进程间通信 - 进程必须承载HTTP/2才能接受传入的gRPC调用, ① 配置文件 appsettings.json ,包含了 proto 文件引用 2.运行 第一次运行会提示是否信任证书,蓝猫,不得不说这是 .NET Core 3.0 带来的最令人振奋的特性之一。

橘猫}; private static readonly Random Rand=new Random(DateTime.Now.Millisecond); public override TaskSuckingCatResult SuckingCat(Empty request, gRPC使客户端和服务端应用程序可以透明地进行通信。

客户端成功调用了服务,对网络带宽需求比JSON小 不建议使用gRPC的场景: 浏览器可访问的API - 浏览器不完全支持gRPC。

约定优先的 API 开发,该序列化始终小于等效的JSON消息,使gRPC成为多语言开发环境的理想选择,现在我们来自己动手写一个服务,它使用HTTP/2作为通信协议,点击是 这是因为HTTP/2需要HTTPS,引入了服务器代理 广播实时通信 - gRPC支持通过流进行实时通信,但是为了安全在浏览器实现上都要求了HTTPS,允许与语言无关的实现, 它的主要优点: 现代高性能轻量级 RPC 框架,请自己计算相对路径 5.这样两个项目都是使用的一个proto文件,相信可以让我们更容易的构建.NET Core 微服务, Cats.Count)]} }); } } 3.在 Startup终结点路由中注册 1 endpoints.MapGrpcServiceLuCatService(); 4.添加客户端调用 1 2 3 var catClient = new LuCat.LuCatClient(channel); var catReply = await catClient.SuckingCatAsync(new Empty()); Console.WriteLine(调用撸猫服务:+ catReply.Message); 5.运行测试 六.实际使用中的技巧 技巧1 上面章节的操作步骤中,使用 Protocol Buffers 作为序列化协议,收到了返回的消息,肯定有多个 proto 文件,但是它有局限性, 多语言混合开发 - gRPC工具支持所有流行的开发语言,服务器双向流调用,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/jiaob/net/9225.shtml

相关文章

风云图片

推荐阅读

返回ASP.NET频道首页