gRPC是高性能的RPC框架,有效地用于服务通信(不管是数据中心内部还是跨数据中心)。
由Google开源,目前是一个CloudNativeComputingFoundation(CNCF)孵化项目。
其功能包括:
?双向流?强大的二进制序列化?可插拔的身份验证,负载平衡和运行状况检查
在gRPC中,客户端应用程序可以直接在A服务器上调用B服务器的方法,就好像它是本地对象一样,从而使您更轻松地创建分布式应用程序和微服务。
与许多RPC系统一样,gRPC也是围绕着定义服务的思想(定义可远程调用方法的入参和返回值类型)。
在服务端,服务端实现此接口并运行gRPC服务器,以处理客户端调用。在客户端,客户端有一个存根,提供与服务器相同的方法。
在本文中,我将向您展示如何使用.NET5创建gRPC服务。我将分解gRPC的一些重要基础概念,并给出一个有意思的包罗核心功能的实例。
1.创建一个gRPC服务器我们从gRPC服务模板创建一个新的dotnet项目。
如果使用VisualStudio,请创建一个新项目,然后选择gRPCService模板,使用GrpcAuthor作为项目的名称。
1.1定义Rpc服务客户端与服务端使用protocolbuffers交流/通信:protocolbuffers既用作服务的接口定义语言(IDL),又用作底层消息交换格式。
①使用protocolbuffers在.proto文件中定义服务接口。在其中,定义可远程调用的方法的入参和返回值类型,服务端实现此接口并运行gRPC服务器以处理客户端调用。②定义服务后,使用protocolbuffers编译器protoc从.proto文件生成数据访问/传输类,该文件包含服务接口中消息和方法的实现。