阅读本文前需要对gprc、protobuf有些基本的了解。本文主要从proto文件的编写、proto文件生成py文件、客户端和服务端生成3个方面讲解基于python grpc搭建rpc服务的流程。
1 编写proto文件
proto是一个协议文件,客户端和服务器的通信接口正是通过proto文件协定的,可以根据不同语言生成对应语言的代码文件。因此,grpc创建的是一个语言无关的服务,只要proto一直,服务端和客服端可以使用不同的语言进行开发。
syntax = "proto3";
service WindServer {
rpc wind_predict(Request) returns (Response) {}
}
message Request {
string content = 1;
}
message Response {
string msg = 1;
int32 code = 2;
}
2 通过proto生成.py文件
proto文件需要通过protoc生成对应的.py文件。protoc的下载地址。下载解压之后,将解压目录添加到path的环境变量中。
2.1 安装grpcio、grpcio-tools、protobuf
pip install grpcio==1.30.0
pip install grpcio-tools==1.30.0
pip install protobuf==3.12.2
2.2 生成pb2和pb2_grpc文件
注意:【该命令是在proto文件所在的