gRPC是什么
gRPC是可以在任何环境中运行的现代开源高性能RPC框架。它可以通过可插拔的支持来有效地连接数据中心内和跨数据中心的服务,以实现负载平衡,跟踪,运行状况检查和身份验证。它也适用于分布式计算的最后一英里,以将设备,移动应用程序和浏览器连接到后端服务。
proto文件
用于定义gRPC服务和消息的协定;服务端和客户端共享proto文件。
服务端:
使用Core 3.0的gRPC模板生成服务端,关键点是proto文件
使用模板生成会自动添加依赖项
Grpc.AspNetCore
proto文件:
syntax = "proto3"; option csharp_namespace = "GrpcGreeter"; package greet; // The greeting service definition. service Greeter { //自定义 rpc GetName (HelloRequest) returns (HelloReply); // 通过一元方式传输 rpc SayHello (HelloRequest) returns (HelloReply); // 通过客户端流的方式传输 rpc SayHelloClientStream (stream HelloRequest) returns (HelloReply); //通过服务端流的方式传输 rpc SayHelloServerStream (HelloRequest) returns (stream HelloReply); //通过双向流的方式传输 rpc SayHelloStream (stream HelloRequest) returns (stream HelloReply); } // The request message containing the user's name. message HelloRequest { string name = 1; } // The response message containing the greetings. message HelloReply { string message = 1; }