grpcio (python) 初探
grpc 是一个 google开源的 rpc库,支持多种语言,本文讲python版本的grpc。
安装:
pip install grpcio
pip install grpcio-tools
开发顺序:
1. 首先要定义prototype文件。定义好rpc的函数、输入参数,返回参数。
示例如下:
syntax = "proto3";
message DomoPushRequest {// 定义请求数据
string digest = 1;
string content= 2;
string psd = 3;
}
message DomoPushRst{// 定义返回格式
string rst_string = 1; //统一返回json字符串作处理
}
service DomoPushHandler {
rpc create_domopush (DomoPushRequest) returns (DomoPushRst) {}
}
2. 基于定义好的prototype文件,后缀名为 “.proto”。生成两个py文件。方法是到 prototype文件 所在的目录运行如下命令行:
python3 -m grpc_tools.protoc --python_out=. --grpc_python_out=. -I. *.proto
这句命令就是读取目录下所有.proto文件,然后在同目录下生成两个py文件
3. 引用这两个py文件,就可以开发对应的server和client。
结语:
比较有意思的就是通过proto文件,来自动生成两个py文件。
由于是跨语言的,所以同样能跨python版本,比如client运行在python3.5上,server运行在python3.7上。只要grpc的版本一直,就能通信。