您现在的位置:主页 > www.6666sz.com >

www.6666sz.com

Core 30 上的gRPC服务模板初体验(多图)

文章来源:本站原创作者:admin 发布时间:2019-09-30

  早就听说Core 3.0中引入了gRPC的服务模板,正好趁着家里电脑刚做了新系统,然后装了VS2019的功夫来体验一把。同时记录体验的过程。如果你也想按照本文的步骤体验的话,那你得先安装.NET Core3.0预览版的SDK。至于开发工具我用的时VS2019,当然你也可以使用VS Code进行。

  gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。 有关 gRPC 基础知识的详细信息,请参阅 gRPC 文档页。

  GRPC使用约定优先的API开发方法。默认情况下,使用协议缓冲区(Protobuf)作为接口设计语言(IDL)。这个.proto文件包含:

  工具包Grpc.Tools 被用来从.proto文件生成C#文件。生成的资产(文件)具有如下特性:

  工具包在运行时并不是必需的,因此,应该用PrivateAssets=All.

  我们知道Grpc.Tools工具包将根据.proto文件的定义翻译并生成对应的C#类型的文件。

  对于服务器端资产,将生成一个抽象的服务基类型。基类型包含在.proto文件中包含的所有GRPC调用的定义。然后,您将创建从此基类型派生的具体服务实现,并实现GRPC调用的逻辑。对于前面描述的greet.proto示例,将生成包含虚拟SayHello方法的抽象GreeterBase类型。具体的实现GreeterService重写该方法并实现处理GRPC调用的逻辑。

  对于客户端,将生成一个具体的客户端类型中的GRPC调用。.proto文件被转换为可以调用的具体类型上的方法。为greet.proto前面描述的示例,一个具体的GreeterClient类型生成。这个GreeterClient类型包含SayHello方法,可以调用该方法来启动对服务器的GRPC调用。

  默认情况下,分别生成服务器和客户端资产。.proto文件包含在Protobuf项目组。若要确保仅在服务器项目中生成服务器资产,GrpcServices属性设置为Server.

  ASP.NET Core 中间件和功能共享路由管道,因此可以将应用程序配置为服务其他请求处理程序。其他请求处理程序(如MVC控制器)可以与配置的GRPC服务路由并行工作。

  GRPC服务可以完全访问ASP.NETCore功能,如依赖注入(Di)和日志功能。例如,服务实现可以通过构造函数解析DI容器中的记录器服务:

  默认情况下,Kestrel服务器设置为最小请求主体数据速率。对于客户端流式和双工流式的请求,此速率可能不满足,并且连接可能超时。当GRPC服务包括客户端流和双工流调用时,必须禁用最小请求正文数据速率限制:

  今天分享的内容有点多,目的就是使记录尽可能的详细,尽可能用通俗易懂的语言来进行描述,中国电信服务理念是什么让大家能用起来。在asp.net core3.0中把grpc服务作为第一等公民进行支持,所以我们有必要进行下了解。可能很多朋友会有疑问了,怎么查域名的注册商,我Web API用的爽歪歪,干嘛还要用gRPC这种远程过程调用协议啊。沧州凯迪拉克总统一号改装上海专卖店价格关于这个问题,我准备再单独开一篇文章进行讲解,最后感谢大家的阅读,码字不易,多多推荐支持吧!返回搜狐,查看更多