gRPC 项目现已发布 1.0 版本,可用于生产环境部署
今天,gRPC 项目的 1.0 版本发布,标志着其达到了一个重要的里程碑。发布 1.0 版本的语言包括:C++、Java、Go、Node、Ruby、Python 和 C#,涵盖 Linux、Windows 和 Mac。在 iOS 和 Android 上的 Objective-C 和 Android Java 支持也随之发布 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 的延迟和吞吐量。其他测量结果表明,使用 gRPC/Protobuf 代替 HTTP/JSON 可以获得显著的性能提升,例如在 CoreOS 博客文章 和 Google Cloud PubSub 测试 中。在接下来的几个月中,我们将投入更多精力进行性能调优。
即使在 Google 内部,我们也看到了 Google 云 API,例如 BigTable、PubSub、Speech,它们都推出了基于 gRPC 的 API 接口,从而简化了使用并提高了性能。像 Tensorflow 这样的产品也有效地使用了 gRPC 进行进程间通信。除了使用之外,我们还渴望看到 gRPC 的贡献者社区不断壮大。我们已经开始看到 grpc-ecosystem 组织以有意义的方式为 gRPC 做出贡献。我们很高兴看到诸如 grpc-gateway 这样的项目,它使用户能够使用基于 gRPC 的服务为 REST 客户端提供服务;Polyglot 用于 gRPC 的 CLI;Prometheus 监控 gRPC 服务以及与 OpenTracing 合作。您可以在此处 提出和贡献项目到此组织。我们期待与社区合作,将 gRPC 项目推向新的高度。