自定义后端指标

gRPC 库中的一种机制,允许用户在 gRPC 服务器端注入自定义指标,并在 gRPC 客户端端使用,以便制定自定义的负载均衡算法。

自定义后端指标

gRPC 库中的一种机制,允许用户在 gRPC 服务器端注入自定义指标,并在 gRPC 客户端端使用,以便制定自定义的负载均衡算法。

概述

通过考虑后端的本地或全局负载知识(例如 CPU),可以做出简单的负载均衡决策。更复杂的负载均衡决策可以通过应用程序特定的知识(例如队列深度)或组合多个指标来实现。

自定义后端指标功能公开 API,允许用户在其 LB 策略中实现指标反馈。

用例

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

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

指标报告

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

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

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

该图显示了用户创建自己的 LB 策略来实现后端指标反馈的架构。

gRPC backend metrics diagram

实现

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

语言支持

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