RSS

gRPC 项目现已发布 1.0 版本,可用于生产部署

今天,gRPC 项目发布了其重要的里程碑版本1.0 版本。迁移到 1.0 版本的语言包括 C++、Java、Go、Node、Ruby、Python 和 C#,涵盖 Linux、Windows 和 Mac 平台。Objective-C 和 Android Java 在 iOS 和 Android 上的支持也迁移到了 1.0 版本。1.0 版本意味着核心协议和 API 表面现在已稳定,经过了性能测量和压力测试,开发者可以依赖这些 API 并在生产环境中部署,它们将从现在起遵循语义版本控制。

对于迄今为止取得的进展,我们感到非常兴奋,并感谢所有用户和贡献者。gRPC 于 2015 年 3 月与 Square 一同首次宣布,目前已被许多开源项目使用,例如 CoreOS 的 etcd、Docker 的 containerd、Cockroach Labs 的 cockroachdb>,以及 Vendasta、Netflix、YikYak 和 Carbon 3d 等许多公司。除了微服务之外,思科 (Cisco)、瞻博网络 (Juniper)、Arista 和 Ciena 等电信巨头正使用 gRPC 构建对其网络设备进行流式遥测 (streaming telemetry) 和网络配置 (network configuration) 的支持,这是 OpenConfig 工作的一部分。

自 Beta 版本发布以来,我们在可用性、互操作性和性能测量方面取得了重大进展,为 迈向 1.0 版本 铺平了道路。在大多数语言中,安装 gRPC 运行时以及设置开发环境都只需要一个命令。除了安装之外,我们还针对 gRPC 设置了跨语言和 RPC 类型的自动化测试,以对我们的 API 进行压力测试并确保互操作性。现在公开提供了一个 性能仪表板,可以查看各种语言的单次 (unary) 和流式 (streaming) ping pong 的延迟和吞吐量。其他测量结果显示,与使用 HTTP/JSON 相比,使用 gRPC/Protobuf 带来了显著的提升,例如在 CoreOS 博客文章 和在 Google Cloud PubSub 测试 中。在接下来的几个月里,我们将投入更多精力进行性能调优。

即使在 Google 内部,我们也看到了 BigTable、PubSub、Speech 等 Google Cloud API 推出了基于 gRPC 的 API 表面,从而带来了易用性和性能优势。Tensorflow 等产品也有效地使用 gRPC 进行进程间通信。除了使用之外,我们还非常期待看到 gRPC 的贡献者社区不断壮大。我们已经在 grpc-ecosystem 组织中看到围绕 gRPC 的有意义的贡献。我们很高兴看到诸如 grpc-gateway(用于使 gRPC 服务能为 REST 客户端提供服务)、Polyglot(提供 gRPC 命令行工具)、Prometheus monitoring(用于监控 gRPC 服务)以及与 OpenTracing 集成等项目。您可以在此处向此组织建议和贡献项目。我们期待与社区合作,将 gRPC 项目推向新的高度。