【问题标题】:grpc - cross machine and cross languagesgrpc - 跨机器和跨语言
【发布时间】:2020-11-08 10:03:36
【问题描述】:

我正在努力学习使用grpc,在grpc网站上阅读了一段时间后,我有一些问题。

假设我有一台机器 A 和一个用python 编写的 grpc 服务器。我想在机器 B 上运行一个 grpc 客户端 node.js 与机器 A 上的服务器通信。

第一个问题是,服务器和客户端是否需要共享同一个.proto文件?另外,我可以在不知道服务器源代码的情况下编写客户端部分吗?我的指导方针是什么?

一般来说,我真的不明白如何为远程服务器编写客户端,反之亦然,如果有人能给我一个很好的过程解释,我将不胜感激。

grpc 网站中的所有示例都使用相同的服务器和客户端语言,并且从同一台机器甚至同一文件夹运行,这让我更难理解它是如何远程工作的。

感谢您提供的任何解释。

【问题讨论】:

    标签: node.js protocol-buffers grpc


    【解决方案1】:

    gRPC 中的R 代表远程,因此在另一台机器上调用代码是主要目的。

    使用.proto 文件,您可以生成任何语言的服务器和客户端代码并在任何机器上运行。

    文件应该在客户端和服务器之间共享,可以用不同的语言编写。支持向后兼容的更改,例如在服务对象.proto 中添加新的可选字段不需要更新旧客户端.proto 文件

    .proto 文件定义了消息格式和要公开的 RPC 服务。从远程计算机调用服务全名时,服务全名将成为 URL 的一部分。

    【讨论】:

    • 所以如果我有.proto 文件,我可以使用它生成任何支持的语言的客户端,然后使用它?
    • 是的,服务器也一样。
    猜你喜欢
    • 1970-01-01
    • 2021-02-22
    • 2012-02-10
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    相关资源
    最近更新 更多