RPC
远程过程调用(远程函数调用)
GRPC
google开发,跨语言RPC,用来解决微服务通信性能和扩展问题
跨语言:通过Protobuffer文件(通用文件)解决跨语言问题的
高并发:GRPC基于http/2协议,多路复用机制(服务端一个线程可以连接任意数量客户端请求)
webapi缺陷
webapi基于HTTP协议,7层通讯协议,高并发存在性能瓶颈。
创建GRPC服务端项目
方式1、新建grpc项目
方式2、手动创建
1、创建proto文件
proto文件相当于服务接口
2、通过proto文件创建服务类
创建GRPC客户端项目
1、创建项目GrpcClient
2、安装Nuget包
Install-Package Grpc.Net.Client
Install-Package Google.protobuf
Install-Package Grpc.Tools
3、拷贝服务端项目的Protos/greet.proto文件到客户端
修改proto文件
option csharp_namespace = "GrpcClient";
4、项目文件中添加
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
proto文件语法
service:定义服务
rpc:定义方法
message:入参、出参必须是一个类,由message
关键字定义