拦截器(Interceptors)
解释了如何使用拦截器实现适用于许多 RPC 方法的通用行为。
何时使用拦截器
您可能已经熟悉拦截器的概念,可能习惯将它们称为 “过滤器” 或 “中间件”。拦截器非常适合实现与单个 RPC 方法无关的逻辑。它们还很容易在不同的客户端或服务器之间共享。拦截器是扩展 gRPC 的一个重要且常用的方式。您可能会发现,您需要的一些功能已经作为拦截器在更广泛的 gRPC 生态系统中可用。
一些常见的拦截器使用场景包括:
-
元数据 处理
-
日志记录
-
故障注入
-
缓存
-
指标
-
策略执行
-
服务器端身份验证
-
服务器端授权
虽然客户端身份验证可以通过拦截器完成,但 gRPC 提供了一个专门的 “调用凭证”(call credentials)API,它更适合此任务。有关客户端身份验证的详细信息,请参见 身份验证指南。 |