gRPC是Google开源的一个跨语言和平台的高性能RPC框架。
他的主要特性有:
使用基于HTTP/2的传输协议。带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。
使用基于ProtoBuf3.x的数据序列化协议。
可以自动生成多种语言的代码
在这个项目中,我将演示如何使用gRPC创建一个简单的服务,我会用Go作为服务端提供服务,Python3作为客户端调用服务。
在这里,客户端会向服务端发送一组账号和密码。服务端接收到账号和密码后,会将其打印出来,同时拼接后进行Base64编码,然后再返回给客户端。
下面我们就正式开始。
1. 定义数据格式
首先我们使用protobuf定义传输的数据格式.这里我们需要创建protobuf/auth.proto文件,并在里面定义我们要传输和返回的数据格式,以及可以被远程调用的函数。代码看这里。
syntax = "proto3";
option go_package = "protobuf";
package auth;
// 定义客户端要发送的数据格式
message Request {
string username = 1;
string password = 2;
}
// 定义服务端返回的数据格式
mes