grpc 和 protobuf:服务器和客户端的角色

grpc and protobuf: roles of a server and a client

我是 grpcprotobuf 的新手,我想了解 grpc 是否能满足我的需求。基本上我有一个软件可以在某些阶段调用脚本(bashpython)并向脚本传递一些参数(例如,交易状态、一些值等),所以我我想通过 grpc 传递这些参数,即 grpc 通信必须由我的脚本启动。

我知道有 grpc python 库,所以我想在我的脚本中利用它们。但是我不太清楚我的脚本是否必须充当 grpc 客户端或服务器?我看到的示例非常简单 - request/reply,客户端发出请求,服务器回复;这不是我想要的。

您的问题含糊不清,难以提供指导。

Whosebug 更喜欢开发人员(编码)问题,不鼓励开放式指导。

两件事:

  • 从本质上讲,gRPC 是一种机制,通过它某些东西调用(调用)其他东西的功能|方法。通常(但不一定)通过网络访问其他内容。基本思想是您希望能够调用一些过程(函数|方法),例如add(a,b) but thing where add is actually implemented|performed 的东西不是你的本地机器而是很遥远。因此,远程过程调用 (RPC) 和“g”(可能最初是)“Google”
  • 由于 gRPC 只是(远程)过程调用,所以通常有一个概念,即调用者是客户端,被调用的东西是服务器,但是,这些概念是流动的,客户端可以是服务器,也可以是服务器也可以是客户端(取决于发起呼叫的人)。
  • gRPC 经常(但不一定)用于代替 REST、GraphQL 和(许多)其他。了解为 gRPC 的好处付出的“代价”很重要。您必须为消息定义架构。使用(高效的)二进制格式(即非人类可读)发送消息(通过网络)。 gRPC 使用 HTTP/2。您必须为您的语言实现才能使用 gRPC(支持 Python;许多语言都支持)。
  • gRPC 实现各不相同,但主要实现支持同步和异步调用、请求-响应和客户端、服务器和双向流。
  • 在很多情况下,REST|HTTP 更易于使用,因为它发送人类可读的“消息”,有许多工具(例如 curl)可用,而且每个人都一直在使用它永远.
  • 我鼓励您阅读框架 site
  • 上的内容