May 2025
Intermediate to advanced
204 pages
2h 24m
Chinese
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在前几章中,我们重点讨论了设计和开发基于 gRPC 的应用程序的各个方面。现在,是时候深入了解在生产中运行 gRPC 应用程序的细节了。在本章中,我们将讨论如何为 gRPC 服务和客户端开发单元测试或集成测试,以及如何将它们与持续集成工具集成。然后,我们将进入 gRPC 应用程序的持续部署,在此我们将探索虚拟机(VM)、Docker 和 Kubernetes 上的一些部署模式。最后,要在生产环境中运行 gRPC 应用程序,您需要有一个可靠的可观察性平台。在这里,我们将讨论用于 gRPC 应用程序的不同可观察性工具,并探讨 gRPC 应用程序的故障排除和调试技术。 让我们从测试这些应用程序开始讨论。
您开发的任何软件应用程序(包括 gRPC 应用程序)都需要进行相关的单元测试。由于 gRPC 应用程序总是与网络交互,因此测试也应涵盖服务器和客户端 gRPC 应用程序的网络 RPC 方面。我们将从测试 gRPC 服务器开始。
gRPC 服务测试通常使用 gRPC 客户应用程序作为测试用例的一部分。服务器端测试包括用所需的 gRPC 服务启动一个 gRPC 服务器,然后使用你实现测试用例的客户端应用程序连接到服务器。 让我们来看看为我们的ProductInfo 服务的 Go 实现编写的测试用例示例。在 Go 中,gRPC 测试用例的实现应使用testing 包作为 Go 的通用测试用例来实现(见例 7-1)。
funcTestServer_AddProduct(t*testing.T){grpcServer:=initGRPCServerHTTP2()conn,err:=grpc.Dial(address,grpc.WithInsecure())iferr!=nil{grpcServer.Stop()t.Fatalf("did not connect: %v",err)}deferconn.Close()c:=pb.NewProductInfoClient(conn)name:="Sumsung S10"description:="Samsung Galaxy S10 is the latest smart phone, launched in February 2019"price:=float32(700.0)ctx,cancel:=context.WithTimeout(
Read now
Unlock full access