常见问题
常见问题
以下是一些常见问题。希望您能在这里找到答案 :-)
什么是 gRPC?
gRPC 是一个现代、开源的远程过程调用 (RPC) 框架,它几乎可以在任何地方运行。它使客户端和服务端应用程序能够透明地进行通信,并使构建连接系统更加容易。
阅读更长的动机与设计原则文章,了解我们创建 gRPC 的背景。
gRPC 代表什么?
当然,就是 gRPC 远程 过程 调用!
我为什么要使用 gRPC?
主要使用场景
- 低延迟、高可伸缩的分布式系统。
- 开发与云服务器通信的移动客户端。
- 设计需要准确、高效且语言无关的新协议。
- 分层设计,以便扩展,例如:认证、负载均衡、日志记录和监控等。
谁在使用它,为什么?
gRPC 是一个 Cloud Native Computing Foundation (CNCF) 项目。
Google 长期以来一直在 gRPC 中使用许多底层技术和概念。当前的实现已用于 Google 的多种云产品和面向外部的 Google API。它也被 Square、Netflix、CoreOS、Docker、CockroachDB、Cisco、Juniper Networks 以及许多其他组织和个人所使用。
支持哪些编程语言?
有关官方支持的语言和平台,请参阅官方支持。
如何开始使用 gRPC?
您可以通过此处的说明开始安装 gRPC。或者前往 gRPC GitHub 组织页面,选择您感兴趣的运行时或语言,然后按照 README 说明进行操作。
gRPC 使用什么许可?
所有实现均根据 Apache 2.0 获得许可。
如何贡献?
贡献者热烈欢迎,代码仓库托管在 GitHub 上。我们期待社区的反馈、补充和 bug 报告。个人贡献者和企业贡献者都需要签署我们的 CLA。如果您有关于 gRPC 项目的想法,请阅读此处的指南并提交。我们在 GitHub 上拥有越来越多的 gRPC 生态系统组织下的项目。
文档在哪里?
请查阅 grpc.io 上的文档。
路线图是什么?
gRPC 项目有一个 RFC 流程,新的功能通过该流程进行设计和批准实现。它们记录在此仓库中。
gRPC 版本支持多久?
gRPC 项目没有 LTS 版本。鉴于上述滚动发布模式,我们支持当前最新版本和其前一个版本。这里的支持指 bug 修复和安全修复。
gRPC 版本控制策略是什么?
请参阅此处的 gRPC 版本控制策略。
最新的 gRPC 版本是什么?
最新发布标签是 v1.71.0。
gRPC 版本何时发布?
gRPC 版本何时发布?
如何报告 gRPC 中的安全漏洞?
如何报告 gRPC 中的安全漏洞?
我可以在浏览器中使用它吗?
gRPC-Web 项目已正式发布。
我可以使用 gRPC 与我喜爱的数据格式(JSON、Protobuf、Thrift、XML)一起使用吗?
是的。gRPC 被设计为可扩展,支持多种内容类型。初始版本包含对 Protobuf 的支持,并提供对 FlatBuffers 和 Thrift 等其他内容类型的外部支持,成熟度各不相同。
我可以在服务网格中使用 gRPC 吗?
是的。gRPC 应用程序可以像其他任何应用程序一样部署在服务网格中。gRPC 还支持 xDS API,这使得 gRPC 应用程序可以在没有 sidecar 代理的情况下部署在服务网格中。gRPC 中支持的无代理服务网格功能此处列出。
gRPC 如何帮助移动应用程序开发?
gRPC 和 Protobuf 提供了一种轻松的方式来精确定义服务,并为 iOS、Android 和提供后端的服务器自动生成可靠的客户端库。客户端可以利用先进的流式传输和连接特性,这有助于节省带宽,通过更少的 TCP 连接完成更多工作,并节省 CPU 使用率和电池寿命。
为什么 gRPC 比任何通过 HTTP/2 传输的二进制块更好?
这基本上就是 gRPC 在网络线上的样子。但是 gRPC 也是一组库,它们可以在各个平台提供普通 HTTP 库通常不具备的高级功能。这些功能的例子包括:
- 与应用层流控制的交互
- 级联调用取消
- 负载均衡与故障转移
为什么 gRPC 比 REST 更好/更差?
gRPC 大体上遵循 HTTP/2 的 HTTP 语义,但我们明确允许全双工流式传输。我们与典型的 REST 约定有所不同,因为在调用分发时,出于性能考虑,我们使用静态路径,因为从路径、查询参数和负载主体解析调用参数会增加延迟和复杂性。我们还规范化了一组错误,我们认为这些错误比 HTTP 状态码更直接适用于 API 用例。
gRPC 如何发音?
发音为 Jee-Arr-Pee-See。