gRPC 是一个现代化的开源高性能远程过程调用(RPC)框架,可以在任何环境下运行。它可以高效地连接数据中心内部和跨数据中心的服务,并对负载均衡、跟踪、健康检查和身份验证提供插件式支持。它同样适用于分布式计算的“最后一英里”,将设备、移动应用和浏览器与后端服务连接起来。
主要使用场景
- 在微服务架构中高效连接各种编程语言编写的服务
- 将移动设备、浏览器客户端连接到后端服务
- 生成高效的客户端库
核心功能亮点
- 支持 11 种语言的惯用客户端库
- 传输效率高,且拥有简单的服务定义框架
- 基于 HTTP/2 传输的双向流式传输
- 可插拔的身份验证、跟踪、负载均衡和健康检查
谁在使用 gRPC 以及原因?
许多公司已经在其环境中使用 gRPC 来连接多个服务。使用案例从连接少量服务到连接跨本地或云环境中各种语言的数百个服务不等。以下是部分早期采用者的详细介绍和感言。
来看看大家是怎么说的。
在 Square,我们一直与 Google 合作,以便我们能够将所有自定义 RPC 解决方案的使用迁移到 gRPC。我们决定转向 gRPC,是因为它对多平台的开放支持、已证实的协议性能,以及针对我们网络进行定制和调整的能力。Square 的开发人员期待能够利用流式 API 进行开发,并计划在未来将 gRPC 推向网络边缘,以实现与移动客户端和第三方 API 的集成。
gRPC 背后的故事
gRPC 最初由 Google 创建,Google 使用一种名为 Stubby 的通用 RPC 基础架构,十多年来一直用于连接其数据中心内及跨数据中心运行的大量微服务。2015 年 3 月,Google 决定构建 Stubby 的下一个版本并将其开源。最终成果就是 gRPC,它现在被 Google 以外的许多组织所使用,支持从微服务到计算“最后一英里”(移动、Web 和物联网)的各种应用场景。
有关我们为何创建 gRPC 的更多背景信息,请参阅 gRPC 博客上的 gRPC 动机与设计原则。


