概览
本文将对gRPC框架做一个简单的介绍,然后将了解如何使用创建gRPC服务ASP.NET以及如何从.NET核心应用程序调用这些服务。
介绍
gRPC是由Google设计和引入的一个框架,自2015年以来一直是一个开源项目。该框架支持使用HTTP/2协议的服务之间的远程过程调用(RPC),二进制消息使用协议缓冲区进行序列化/反序列化Google设计的一种新二进制协议,用于生成更紧凑的消息,以便在两个端点之间传输时使用更少的CPU和更高的性能。
此框架自3.0版起包含在.NET Core中,并在VisualStudio2019 IDE中提供了特殊的gRPC服务模板。
gRPC使用proto文件来定义服务及其消息契约信息。这些协定将被协议缓冲区序列化/反序列化为二进制消息,并通过HTTP/2协议传递。
一旦开发人员编写了包含相应服务和消息契约的原型文件,gRPC框架中的工具库将为原型文件中的服务和消息契约创建强类型类和POCO类。通过这种方式,我们可以在其他C#类中调用proto文件中定义的方法和变量,就像我们在其他强类型C#类中所做的那样。
目前,gRPC服务在微服务体系结构中的应用最为广泛,用于在松散耦合的服务之间进行通信。尽管如此,我们在从浏览器到服务的通信过程中仍然面临一些问题,因为大多数浏览器仍在努力在不久的将来包含它。
现在我们对这个新框架的理解已经足够好了,现在我们需要从开发人员的角度了解更多的实际情况,通过理解.NETCore中的服务的创建和使用。
创建gRPC服务器
gRPC框架随附ASP.NET核心3.0以及gRPC服务项目模板。创建它是一项直接的任务,如下所示。
单击Next按钮并提供服务名称,如下所示
创建服务后,我们可以看到两个文件夹
proto–此文件夹将包含所有.proto文件。正如简介部分所讨论的,这些文件应该包含C术语、接口和POCO类中的所有服务和消息契约。
服务–此文件夹将包含从proto文件中声明的服务/接口继承的具体强类型服务类。