最少请求负载均衡策略 (proto)

此扩展的限定名称为 envoy.load_balancing_policies.least_request

注意

此扩展的安全性未知,应仅在上下游和上游都可信的部署中使用。

提示

此扩展扩展并可与以下扩展类别一起使用

此扩展必须使用以下类型 URL 之一进行配置

extensions.load_balancing_policies.least_request.v3.LeastRequest

[extensions.load_balancing_policies.least_request.v3.LeastRequest proto]

此配置允许通过 LB 策略扩展点配置内置的 LEAST_REQUEST LB 策略。有关更多信息,请参见负载均衡架构概述.

{
  "choice_count": {...},
  "active_request_bias": {...},
  "slow_start_config": {...},
  "locality_lb_config": {...},
  "selection_method": ...
}
choice_count

(UInt32Value) 从中选择具有最少活动请求的宿主的随机健康宿主的数量。默认为 2,因此如果未设置该字段,我们将执行二选一选择。仅适用于 N_CHOICES 选择方法。

active_request_bias

(config.core.v3.RuntimeDouble) 以下公式用于计算主机具有不同负载均衡权重时的动态权重

weight = load_balancing_weight / (active_requests + 1)^active_request_bias

活动请求偏差越大,当所有主机权重不相等时,活动请求会越积极地降低有效权重。

active_request_bias 必须大于或等于 0.0。

active_request_bias == 0.0 时,最少请求负载均衡器在选择主机时不考虑活动请求的数量,其行为类似于轮询负载均衡器。

active_request_bias > 0.0 时,最少请求负载均衡器会根据其选择主机时的活动请求数量来缩放负载均衡权重。

出于性能原因,该值被缓存并每当负载均衡器的任何主机集发生更改时刷新,例如,每当有主机成员资格更新或主机负载均衡权重更改时。

注意

此设置仅在所有主机权重不相等时才生效。

slow_start_config

(extensions.load_balancing_policies.common.v3.SlowStartConfig) 慢启动模式的配置。如果未设置此配置,则不会启用慢启动。

locality_lb_config

(extensions.load_balancing_policies.common.v3.LocalityLbConfig) 用于本地区域感知负载均衡或区域加权负载均衡的配置。

selection_method

(extensions.load_balancing_policies.least_request.v3.LeastRequest.SelectionMethod) 用于选择主机集的方法,从中返回具有最少活动请求的宿主。

默认为 N_CHOICES

枚举 extensions.load_balancing_policies.least_request.v3.LeastRequest.SelectionMethod

[extensions.load_balancing_policies.least_request.v3.LeastRequest.SelectionMethod proto]

用于选择主机集的可用方法,从中返回具有最少活动请求的宿主。

N_CHOICES

(默认) ⁣从一组 choice_count 随机选择的宿主中返回具有最少请求的宿主。对于大多数场景来说,这是最佳选择方法。

FULL_SCAN

⁣从所有宿主中返回具有最少请求的宿主。在某些涉及低请求率和以下两种情况之一的利基用例中很有用:(示例 1)工作负载上的低请求限制,或(示例 2)少量宿主。

示例 1:考虑一种工作负载类型,它一次只能接受一个连接。如果此类工作负载部署在许多宿主上,那么在任何给定时间,只有很小一部分此类工作负载具有零连接,并且新连接的速率很低,则 FULL_SCAN 方法比 N_CHOICES 更有可能选择合适的宿主。

示例 2:考虑仅部署在 2 个宿主上的工作负载类型。使用默认设置,N_CHOICES 方法 25% 的时间将返回具有更多活动请求的宿主。如果请求率足够低,则始终选择具有最少请求的宿主(截至上次指标刷新)的行为可能更可取。