1.什么是GRPC及其目的?
RPC(远程过程调用)是一项协议,允许两个程序相互通信,这些程序可以在同一台计算机或不同计算机中定位。
gRPC(Google远程过程调用)是现代的开源高性能远程过程调用(RPC)框架,通常用于开发微晶片。
grpc可以由各种programming languages暗示,在此博客中,我们将在python中给出示例。
2.我们为什么要学习它?
大型后端系统开发正在从整体转移到微服务体系结构。 GRPC是实施微服务体系结构的常见方法之一。
基于下图,Package GRPCIO的每日下载量超过10万,Python用于GRPC开发。 (单独的python !!±)
参考:Pypl Stats: grpcio download rate
3. GRPC和休息之间的区别
您可能会说我们有休息来处理服务之间的沟通,为什么我们需要学习一个新的框架来浪费时间?
参考:gRPC vs REST: comparing APIs architectural styles
我想突出显示几点:
-
如果数据传输速度在选择框架的考虑中起重要作用,则应选择GRPC而不是休息。
GRPC使用的协议缓冲区(二进制数据)用于数据传输,与REST
使用的JSON或XML相比,它更轻巧,更快 -
如果流媒体通信对您的项目很重要,则应考虑GRPC
-
请注意,GRPC对浏览器的支持有限,并且不适合用作向世界开放的API。 GRPC主要用于内部/私人系统。
4.开发过程解释
GRPC的开发过程如下:
- 创建一个原始文件并在其中定义函数,输入和输出
- 生成pb2 .py和pb2_grpc .py文件从命令
- 创建一个Service .py来实现PB2_GRPC .py .py 中的服务器接口
- 在Service .py 中的主要功能中启动服务
- 如果原始文件中有任何更新,您必须 genearte pb2 .py和pb2_grpc .py文件再次
- 大多数用例都是使用proto文件创建客户对象以将请求发送到服务器。如果客户端与服务器是相同的语言,则客户端可以使用PB2_GRPC .PY文件中的Stub类来发送请求。
有关详细实施步骤,请参阅Example Code,Quick Start和Python Basic Tutorial