总结

在本章中,我们讨论了单元测试和负载测试。我们看到,通过广泛测试系统的不同部分,可以发现 bug 和性能问题。然后,我们演示了在发现 bug 后如何调试我们的应用程序。我们使用了服务器反射和 grpcurl 来从终端与我们的 API 进行交互。最后,我们介绍了如何将我们的服务容器化,并将它们部署到 Kubernetes 上。我们看到,可以创建无头服务(headless services)来通过每个 gRPC 服务器的 DNS A 记录暴露我们的微服务,并且可以将 Envoy 放在它们前面来实现负载均衡、限流、身份验证等功能。