过载管理器

过载管理器是一个可扩展组件,用于保护 Envoy 服务器免受由于过多客户端连接或请求导致的各种系统资源(如内存、CPU 或文件描述符)过载的影响。 这与 断路器 不同,断路器主要用于保护上游服务。

过载管理器通过指定一组要监控的资源和一组当某些资源超过特定压力阈值时将采取的过载操作来进行 配置

架构

过载管理器通过定期轮询一组资源压力,将其馈送到触发器,并根据触发器采取操作来工作。 资源监控器、触发器和操作的集合在启动时指定。

资源

资源是可以由过载管理器监控的东西,其压力由 [0, 1] 范围内的实数值表示。 资源的压力由资源监控器评估。 有关设置资源监控器的详细信息,请参阅 配置页面

触发器

触发器在每次资源压力更新时都会进行评估,并将资源压力值转换为操作状态。 操作状态的值在 [0, 1] 范围内,并分为两组

操作状态

描述

缩放

[0, 1)

资源压力低于配置的饱和点;可能采取操作

饱和

1

资源压力达到或超过配置的饱和点;应采取果断行动

当资源压力值更新时,相关的触发器将被重新评估。 对于每个至少有一个触发器的操作,结果操作状态是所有配置的触发器中的最大值。 操作状态的影响取决于操作的配置和实现。

操作

当触发器状态发生变化时,该值将发送到注册的操作,这些操作可以影响连接和请求的处理方式。 每个操作对输入状态的解释不同,有些操作可能完全忽略缩放状态,只在饱和时生效。

请注意,如果 append_local_overload 设置为 true,则丢弃 HTTP 请求会导致 x-envoy-local-overloaded 标头在连接管理器发送的本地回复中设置。