自定义后端指标

gRPC 库中的一种机制,允许用户在 gRPC 服务器端注入自定义指标,并在 gRPC 客户端端消费这些指标,从而实现自定义负载均衡算法。

自定义后端指标

gRPC 库中的一种机制,允许用户在 gRPC 服务器端注入自定义指标,并在 gRPC 客户端端消费这些指标,从而实现自定义负载均衡算法。

概述

简单的负载均衡决策可以基于后端负载的本地或全局信息,例如 CPU 使用率。更复杂的负载均衡决策可以利用应用特定的知识,例如队列深度,或者结合多种指标来实现。

自定义后端指标功能暴露了 API,允许用户在其负载均衡策略中实现指标反馈。

用例

此功能主要用于高级用例,其中使用自定义负载均衡策略将流量更智能地路由到后端服务器列表,以提高路由性能,例如加权轮询负载均衡策略。

gRPC 传统上允许用户插入自己的负载均衡策略,请参阅指南。对于 xDS 用户,可以配置自定义负载均衡器来选择自定义负载均衡策略。

指标报告

开放请求成本聚合(ORCA)是一种用于传输后端指标信息的开放标准。gRPC 使用 ORCA 服务和指标标准,并支持两种指标报告机制:

  • 每查询指标报告:后端服务器在相应的 RPC 完成时将注入的自定义指标附加在尾部元数据中。这对于一元调用等短 RPC 通常很有用。

  • 带外指标报告:后端服务器定期将指标数据(例如 CPU 和内存利用率)推送到客户端。这适用于所有情况:一元调用、流式调用中的长 RPC 或没有 RPC 的情况。然而,带外指标报告不发送查询成本指标。指标发送频率由用户配置,此配置位于自定义负载均衡策略中。

该图显示了用户创建实现后端指标反馈的自定义负载均衡策略的架构。

gRPC backend metrics diagram

实现

更多详细信息,请参阅 gRPC 提案 A51

语言支持

语言示例
JavaJava 示例
GoGo 示例
C++示例即将推出
最后修改时间 2024 年 2 月 29 日:使用绝对路径而非绝对 URL (#1268) (4f733b4)