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 为其网络设备构建流式遥测和网络配置支持,作为 OpenConfig 工作的一部分。
从 Beta 版本发布以来,我们在 迈向 1.0 的道路上,在可用性、互操作性和性能测量方面取得了重大进展。在大多数语言中,gRPC 运行时和开发环境的设置都只需一条命令。除了安装之外,我们还为 gRPC 在不同语言和 RPC 类型上设置了自动化测试,以对我们的 API 进行压力测试并确保互操作性。现在,性能仪表板 已公开可用,可以查看各种语言的单向和流式 ping-pong 的延迟和吞吐量。其他测量结果显示,与使用 HTTP/JSON 相比,使用 gRPC/Protobuf 带来了显著的性能提升,例如在 CoreOS 博客文章 和 Google Cloud PubSub 测试 中。在未来几个月,我们将在性能调优方面投入更多精力。
即使在 Google 内部,我们也看到 Google Cloud API,如 BigTable、PubSub、Speech,推出了基于 gRPC 的 API 接口,带来了易用性和性能优势。像 Tensorflow 这样的产品也有效地利用 gRPC 进行进程间通信。除了使用之外,我们还热衷于看到 gRPC 的贡献者社区不断壮大。我们已经在 grpc-ecosystem 组织中看到了有意义的 gRPC 相关贡献。我们非常高兴看到像 grpc-gateway 这样的项目,它允许用户通过基于 gRPC 的服务来服务 REST 客户端;Polyglot 为 gRPC 提供 CLI;Prometheus 监控 gRPC 服务以及与 OpenTracing 的合作。您可以在此处建议并贡献项目到该组织。我们期待与社区合作,将 gRPC 项目推向新的高度。