让 gRPC 应用程序在生产环境中可用,需要我们关注与应用程序开发相关的许多方面。首先设计服务契约,并生成服务或客户端的代码,然后实现服务的业务逻辑。实现完服务之后,需要关注测试和部署等方面,以确保 gRPC 应用程序在生产环境中可用。gRPC 服务器端和客户端应用程序的测试是至关重要的。

gRPC 应用程序的部署遵循标准的应用程序开发方法论。对于本地部署和 VM 部署来说,只需使用客户端和服务器端生成的二进制文件即可。

可以将 gRPC 应用程序运行为 Docker 容器,并且能够找到在 Docker 上部署 Go 应用程序和 Java 应用程序的标准 Dockerfile 示例。在Kubernetes 上运行 gRPC 应用程序类似于标准的 KubernetesDeployment。在 Kubernetes 上运行 gRPC 应用程序时,会用到一些底层特性,如负载均衡、高可用性、Ingress 控制器等。对于生产环境来讲,让 gRPC 具备可观察性是至关重要的,在生产环境中运行 gRPC 应用程序时,通常会用到 gRPC 应用级的度量指标。

在 gRPC 支持的最流行的一个度量指标实现中,即 gRPC Prometheus库,我们在服务器端和客户端使用拦截器收集度量指标,同时 gRPC 中的日志也是通过拦截器实现的。对于生产环境中的 gRPC 应用程序来说,可能还需要通过启用额外日志来调试或排查相关问题。第 8 章将探讨在构建 gRPC 应用程序时非常有用的一些 gRPC 生态系统组件。

文档更新时间: 2023-09-02 07:21   作者:Minho