总结

在这一章中,我们介绍了使用 gRPC 时开箱即用的关键特性。我们了解到,gRPC 通过错误代码和消息来返回错误,且错误代码比 HTTP 中的少得多,这使得错误信息更加明确,不易产生歧义。

接下来,我们看到了如何使用上下文(context)来使调用变得可取消,并指定截止时间。这些功能对于确保调用的可靠性非常重要,特别是在服务器端发生错误时,可以确保客户端不会一直等待响应。

通过上下文和拦截器,我们还看到了如何发送元数据,并使用它们来验证请求。在我们的例子中,每次请求时都会检查身份验证令牌。在客户端,拦截器可以自动为我们添加元数据。这对于那些跨服务和/或端点共享的元数据尤其有用。

然后,我们介绍了如何加密网络通信。我们使用了 TLS,因为它是最常用的加密方式。我们看到,一旦拥有证书,我们只需创建一个 ServerOption 和一个 DialOption,便可以让服务器和客户端知道如何相互理解。

接下来,我们展示了如何压缩负载。最重要的是,我们讨论了何时压缩负载可能有用,何时不适合使用压缩。

最后,我们使用了客户端负载均衡,并采用了 round_robin 策略,将请求分发到不同的服务器实例上。

在下一章中,我们将介绍更多这一章所讲的核心特性。我们将引入中间件的概念,看看如何使用不同类型的中间件来使我们的 API 更加稳固。