自定义后端指标
gRPC 库中的一种机制,允许用户在 gRPC 服务器端注入自定义指标,并在 gRPC 客户端中消费这些指标,从而实现自定义的负载均衡算法。
概述
通过考虑后端负载的本地或全局知识(例如 CPU),可以做出简单的负载均衡决策。更复杂的负载均衡决策则可能基于特定应用的知识(例如队列深度),或结合多种指标来实现。
自定义后端指标功能暴露了 API,允许用户在负载均衡(LB)策略中实现指标反馈。
指标报告
开放请求成本聚合( ORCA)是一个传递后端指标信息的开放标准。gRPC 使用 ORCA 服务和指标标准,并支持两种指标报告机制:
-
每个查询的指标报告:后端服务器在相应 RPC 完成时,将注入的自定义指标附加到尾部元数据中。这通常用于短时的 RPC,比如一元调用。
-
带外指标报告:后端服务器定期将指标数据(如 CPU 和内存使用情况)推送给客户端。这适用于所有情况:一元调用、长时间的流式 RPC,或者没有 RPC 的情况。然而,带外指标报告不会发送查询成本指标。指标的发射频率是用户可配置的,这些配置位于自定义负载均衡策略中。
下图展示了用户创建自己 LB 策略并实现后端指标反馈的架构。

实现
更多详细信息,请参见 gRPC 提案 A51。