断路器 (proto)

config.cluster.v3.CircuitBreakers

[config.cluster.v3.CircuitBreakers proto]

断路器 设置可以为每个定义的优先级单独指定。

{
  "thresholds": [],
  "per_host_thresholds": []
}
阈值

(repeated config.cluster.v3.CircuitBreakers.Thresholds) 如果多个 Thresholds 定义了相同的 RoutingPriority,列表中的第一个将被使用。如果未为给定的 RoutingPriority 定义 Thresholds,则使用默认值。

每个主机阈值

(repeated config.cluster.v3.CircuitBreakers.Thresholds) 每个主机都有可选的每个主机限制,这些限制适用于集群中的每个主机。

注意

目前,只有 max_connections 字段支持每个主机限制。

如果多个每个主机的 Thresholds 定义了相同的 RoutingPriority,列表中的第一个将被使用。如果未为给定的 RoutingPriority 定义每个主机的 Thresholds,则集群将没有每个主机限制。

config.cluster.v3.CircuitBreakers.Thresholds

[config.cluster.v3.CircuitBreakers.Thresholds proto]

Thresholds 为 RoutingPriority 定义断路器设置。

{
  "priority": ...,
  "max_connections": {...},
  "max_pending_requests": {...},
  "max_requests": {...},
  "max_retries": {...},
  "retry_budget": {...},
  "track_remaining": ...,
  "max_connection_pools": {...}
}
优先级

(config.core.v3.RoutingPriority) 指定的断路器设置应用于的 RoutingPriority

最大连接数

(UInt32Value) Envoy 将与上游集群建立的最大连接数。如果未指定,则默认为 1024。

最大挂起请求

(UInt32Value) Envoy 允许与上游集群建立的最大挂起请求数。如果未指定,则默认为 1024。此限制将作为非 HTTP 流量的连接限制应用。

最大请求

(UInt32Value) Envoy 将与上游集群建立的最大并发请求数。如果未指定,则默认为 1024。此限制不适用于非 HTTP 流量。

最大重试次数

(UInt32Value) Envoy 允许与上游集群建立的最大并发重试次数。如果未指定,则默认为 3。

重试预算

(config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget) 指定与活动请求数相关的并发重试的限制。此参数是可选的。

注意

如果设置了此字段,则重试预算将覆盖任何配置的重试断路器。

跟踪剩余

(bool) 如果 track_remaining 为 true,则将发布统计信息,这些统计信息将显示断路器打开之前剩余的资源数量。如果未指定,则默认为 false。

注意

如果使用重试预算代替 max_retries 断路器,则不会跟踪剩余的重试资源。

最大连接池

(UInt32Value) Envoy 将同时支持的最大集群连接池数量。如果未指定,则默认为无限制。为创建大量连接池的集群设置此项。有关更多详细信息,请参阅 断路器

config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget

[config.cluster.v3.CircuitBreakers.Thresholds.RetryBudget proto]

{
  "budget_percent": {...},
  "min_retry_concurrency": {...}
}
预算百分比

(type.v3.Percent) 指定并发重试限制,该限制为活动请求和活动挂起请求总和的百分比。例如,如果存在 100 个活动请求且 budget_percent 设置为 25,则可能存在 25 个活动重试。

此参数是可选的。默认为 20%。

最小重试并发

(UInt32Value) 指定重试预算允许的最小重试并发。活动重试数量的限制可能永远不会低于此数量。

此参数是可选的。默认为 3。