0%

rpc 的特点 &&Python 应用广泛的RPC方案

rpc的特点
1.Python 应用广泛的RPC方案
2.RPC 目标

rpc 的特点

  • 为了快递进行子系统之间的功能调用,节省网络传输的开销,把数据大量压榨。采用二进制数据直接传递,不是标准的HTTP协议 这种是rpc调用
  • 缺点:不通用,有专门的客户端 和服务器支持,自己定义一套二进制数据的协议,才能完成通讯
  • 优点:通讯效率高
  • 应用:产品内部间的 功能之间调用,选择rpc

Python 应用广泛的RPC方案、

  • Facebook thrift
  • Google gRPC

RPC 目标

  • 高效通讯

  • 封装,把网络调用细节尽量隐藏封装,让使用RPC的的人,感觉就像编写本地函数一样进行远程调用

  • 尽量通用,可以跨平台,跨语言使用

    1
    2
    3
    4
    pip 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方法

------ 本文结束------

欢迎关注我的其它发布渠道