自定义后端指标
gRPC 库中的一种机制,允许用户在 gRPC 服务器端注入自定义指标,并在 gRPC 客户端消费这些指标,以实现自定义负载均衡算法。
自定义后端指标
gRPC 库中的一种机制,允许用户在 gRPC 服务器端注入自定义指标,并在 gRPC 客户端消费这些指标,以实现自定义负载均衡算法。
概述
简单的负载均衡决策可以考虑后端负载的本地或全局信息,例如 CPU 使用率。更复杂的负载均衡决策可以通过应用特定的知识(例如队列深度)或结合多个指标来实现。
自定义后端指标功能公开了 API,允许用户在其负载均衡策略中实现指标反馈。
用例
该功能主要用于高级用例,其中使用自定义负载均衡策略将流量更智能地路由到后端服务器列表,以提高路由性能,例如加权轮询负载均衡策略。
gRPC 传统上允许用户插入自己的负载均衡策略,请参阅指南。对于 xDS 用户,可以通过配置自定义负载均衡器来选择自定义负载均衡策略。
指标报告
开放请求成本聚合 (ORCA) 是一种用于传输后端指标信息的开放标准。gRPC 使用 ORCA 服务和指标标准,并支持两种指标报告机制:
按查询指标报告:后端服务器在相应的 RPC 完成时,将注入的自定义指标附加到尾部元数据中。这通常适用于短 RPC,如一元调用。
带外指标报告:后端服务器定期向客户端推送指标数据,例如 CPU 和内存利用率。这适用于所有情况:一元调用、流式调用中的长 RPC,或无 RPC。然而,带外指标报告不发送查询成本指标。指标的发送频率由用户配置,此配置位于自定义负载均衡策略中。
该图显示了用户创建自己的负载均衡策略并实现后端指标反馈的架构。
实现
欲了解更多详情,请参阅 gRPC 提案 A51。
语言支持
语言 | 示例 |
---|---|
Java | Java 示例 |
Go | Go 示例 |
C++ | 示例即将推出 |
最后修改于2024年2月29日:使用绝对路径而非绝对 URL (#1268) (4f733b4)