rpc的特点
1.Python 应用广泛的RPC方案
2.RPC 目标
rpc 的特点
- 为了快递进行子系统之间的功能调用,节省网络传输的开销,把数据大量压榨。采用二进制数据直接传递,不是标准的HTTP协议 这种是rpc调用
- 缺点:不通用,有专门的客户端 和服务器支持,自己定义一套二进制数据的协议,才能完成通讯
- 优点:通讯效率高
- 应用:产品内部间的 功能之间调用,选择rpc
Python 应用广泛的RPC方案、
- Facebook thrift
- Google gRPC
RPC 目标
高效通讯
封装,把网络调用细节尽量隐藏封装,让使用RPC的的人,感觉就像编写本地函数一样进行远程调用
尽量通用,可以跨平台,跨语言使用
1
2
3
4pip install grpcio 必须的核心依赖库
pip install grpcio-tools 提供了protobuf 语法的编译工具。用来生成代码(python)
pip install protobuf
python代码 一部分写 一部分生成1.使用protocol Buffers(proto3)的IDL接口定义语言定义接口服务,编写在文本文件(以
.proto
为后缀中。2.使用protocol编译器生成服务器和客户端使用的stub代码
3.编写补充服务器和客户端逻辑代码
proto 代码生成
编译生成代码
1 | python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. reco.proto |
-I
表示搜索proto文件中被导入文件的目录--python_out
表示保存生成Python文件的目录,生成的文件中包含接口定义中的数据类型--grpc_python_out
表示保存生成Python文件的目录,生成的文件中包含接口定义中的服务类型reco_pb2.py 保存根据接口定义文件中的数据类型生成的python类
reco_pb2_grpc.py 保存根据接口定义文件中的服务方法类型生成的python调用RPC方法