首先通过Python瞥见GRPC(第1部分)
#python #microservices #grpc #restapi

1.什么是GRPC及其目的?

RPC(远程过程调用)是一项协议,允许两个程序相互通信,这些程序可以在同一台计算机或不同计算机中定位。

gRPC(Google远程过程调用)是现代的开源高性能远程过程调用(RPC)框架,通常用于开发微晶片。

grpc可以由各种programming languages暗示,在此博客中,我们将在python中给出示例。

2.我们为什么要学习它?

大型后端系统开发正在从整体转移到微服务体系结构。 GRPC是实施微服务体系结构的常见方法之一。

基于下图,Package GRPCIO的每日下载量超过10万,Python用于GRPC开发。 (单独的python !!±)
image.png
参考:Pypl Stats: grpcio download rate

3. GRPC和休息之间的区别

您可能会说我们有休息来处理服务之间的沟通,为什么我们需要学习一个新的框架来浪费时间?

比较grpc和休息:
image.png

参考:gRPC vs REST: comparing APIs architectural styles

我想突出显示几点:

  • 如果数据传输速度在选择框架的考虑中起重要作用,则应选择GRPC而不是休息。

    GRPC使用的协议缓冲区(二进制数据)用于数据传输,与REST

    使用的JSON或XML相比,它更轻巧,更快

  • 如果流媒体通信对您的项目很重要,则应考虑GRPC

  • 请注意,GRPC对浏览器的支持有限,并且不适合用作向世界开放的API。 GRPC主要用于内部/私人系统。

4.开发过程解释

GRPC的开发过程如下:

  1. 创建一个原始文件并在其中定义函数,输入和输出
  2. 生成pb2 .py和pb2_grpc .py文件从命令
  3. 创建一个Service .py来实现PB2_GRPC .py .py
  4. 中的服务器接口
  5. 在Service .py
  6. 中的主要功能中启动服务
  7. 如果原始文件中有任何更新,您必须 genearte pb2 .py和pb2_grpc .py文件再次
  8. 大多数用例都是使用proto文件创建客户对象以将请求发送到服务器。如果客户端与服务器是相同的语言,则客户端可以使用PB2_GRPC .PY文件中的Stub类来发送请求。

有关详细实施步骤,请参阅Example CodeQuick StartPython Basic Tutorial

image.png

5.相关帖子和github链接