gRPC 是一个现代的开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以高效地连接数据中心内部和跨数据中心的服务,并提供可插拔的负载均衡、分布式追踪、健康检查和身份验证支持。它也适用于分布式计算的“最后一公里”,用于连接设备、移动应用和浏览器到后端服务。
主要使用场景
- 高效连接微服务架构中的多语言服务
- 连接移动设备、浏览器客户端到后端服务
- 生成高效的客户端库
令其出色的核心特性
- 支持 11 种语言的惯用客户端库
- 高效的传输协议和简单的服务定义框架
- 基于 HTTP/2 传输的双向流
- 可插拔的认证、分布式追踪、负载均衡和健康检查
谁在使用 gRPC 以及为什么?
许多公司已经在其环境中采用 gRPC 来连接多个服务。使用场景多样,从连接少量服务到在本地或云环境中跨多种语言连接数百个服务。以下是一些早期采用者的详细介绍和引言。
查看下面的用户评价。

在 Square,我们一直与 Google 合作,以便用 gRPC 替代我们所有自定义 RPC 解决方案的使用。我们决定转向 gRPC,因为它对多种平台的开放支持、已证明的协议性能以及定制和适应我们网络的能力。Square 的开发者期待能够利用流式 API 的编写,并在未来将 gRPC 推向网络边缘,以便与移动客户端和第三方 API 集成。
gRPC 背后的故事
gRPC 最初由 Google 创建,Google 十多年来一直使用一种名为 Stubby 的单一通用 RPC 基础设施来连接在其数据中心内部和跨数据中心运行的大量微服务。2015 年 3 月,Google 决定构建 Stubby 的下一版本并将其开源。由此产生了 gRPC,现在许多 Google 以外的组织也在使用它来支持从微服务到计算“最后一公里”(移动、Web 和物联网)的各种用例。
关于我们创建 gRPC 的更多背景信息,请参阅 gRPC 动机和设计原则(位于 gRPC 博客)。