常见问题解答

常见问题解答

这里有一些常见问题。希望你在这里找到答案 :-)

什么是 gRPC?

gRPC 是一个现代的、开源的远程过程调用 (RPC) 框架,可以在任何地方运行。它使客户端和服务器应用程序能够透明地通信,并使构建连接的系统更容易。

阅读更长的动机和设计原则文章,了解我们创建 gRPC 的背景。

gRPC 代表什么?

当然是 gRPC Remote Procedure Calls!

我为什么要使用 gRPC?

主要使用场景

  • 低延迟、高度可扩展的分布式系统。
  • 开发与云服务器通信的移动客户端。
  • 设计需要准确、高效且与语言无关的新协议。
  • 分层设计以启用扩展,例如身份验证、负载平衡、日志记录和监控等。

谁在使用它?为什么?

gRPC 是一个 云原生计算基金会 (CNCF) 项目。

谷歌长期以来一直在 gRPC 中使用许多底层技术和概念。当前的实现正在谷歌的多个云产品和谷歌对外 API 中使用。它也被 SquareNetflixCoreOSDockerCockroachDBCiscoJuniper Networks 和许多其他组织和个人使用。

支持哪些编程语言?

有关官方支持的语言和平台,请参阅官方支持

如何开始使用 gRPC?

你可以按照此处的说明开始安装 gRPC。或者前往 gRPC GitHub 组织页面,选择你感兴趣的运行时或语言,并按照 README 说明操作。

gRPC 使用什么许可证?

所有实现均根据 Apache 2.0 获得许可。

我如何贡献?

非常欢迎贡献者,并且存储库托管在 GitHub 上。我们期待社区的反馈、添加和错误修复。个人贡献者和企业贡献者都需要签署我们的 CLA。如果你有关于 gRPC 的项目想法,请阅读指南并在此处提交。我们在 GitHub 上的 gRPC 生态系统 组织下有一个不断增长的项目列表。

文档在哪里?

请在此处 grpc.io 查看文档

路线图是什么?

gRPC 项目有一个 RFC 流程,通过该流程设计和批准新功能以进行实现。它们在此存储库中进行跟踪。

gRPC 版本的支持时间有多长?

gRPC 项目不做 LTS 版本。鉴于上述滚动发布模型,我们支持当前的最新版本和之前的版本。此处支持是指错误修复和安全修复。

gRPC 的版本控制策略是什么?

请在此处查看 gRPC 版本控制策略 here.

最新的 gRPC 版本是什么?

最新的发布标签是 v1.66.0。

gRPC 何时发布?

gRPC 项目在一个主分支的顶端始终稳定的模型下工作。该项目(跨各种运行时)的目标是在尽力而为的基础上每 6 周发布一次检查点版本。请在此处查看发布时间表 此处

如何报告 gRPC 中的安全漏洞?

要报告 gRPC 中的安全漏洞,请按照此处记录的过程进行操作。

我可以在浏览器中使用它吗?

gRPC-Web 项目已正式发布。

我可以使用 gRPC 和我喜欢的数据格式(JSON、Protobuf、Thrift、XML)吗?

是的。gRPC 的设计具有可扩展性,可以支持多种内容类型。初始版本支持 Protobuf,并且在不同成熟度级别上,外部支持其他内容类型,例如 FlatBuffers 和 Thrift。

我可以在服务网格中使用 gRPC 吗?

是的。gRPC 应用程序可以像其他任何应用程序一样部署在服务网格中。gRPC 还支持 xDS API,这使得在没有 sidecar 代理的情况下将 gRPC 应用程序部署在服务网格中成为可能。gRPC 中支持的无代理服务网格功能在此处列出: 此处

gRPC 如何帮助移动应用程序开发?

gRPC 和 Protobuf 提供了一种简单的方法来精确定义服务,并为 iOS、Android 和提供后端的服务器自动生成可靠的客户端库。客户端可以利用高级流和连接功能,这有助于节省带宽、在更少的 TCP 连接上完成更多工作,并节省 CPU 使用率和电池寿命。

为什么 gRPC 比 HTTP/2 上的任何二进制 blob 更好?

这很大程度上是 gRPC 在网络上传输的内容。然而,gRPC 也是一组库,它们将在各个平台上一致地提供通常的 HTTP 库不具备的更高级别的功能。此类功能的示例包括:

  • 在应用程序层与流量控制进行交互
  • 级联调用取消
  • 负载平衡和故障转移

为什么 gRPC 比 REST 更好/更差?

gRPC 在很大程度上遵循基于 HTTP/2 的 HTTP 语义,但我们明确允许全双工流。我们偏离了典型的 REST 约定,因为我们在调用调度期间使用静态路径来提高性能,因为从路径、查询参数和有效负载主体解析调用参数会增加延迟和复杂性。我们还正式化了一组我们认为比 HTTP 状态代码更直接适用于 API 用例的错误。

gRPC 如何发音?

吉-阿-皮-西。