对于长期处于低水位状态的系统,可以使用预热启动功能来避免流量骤增导致的水位瞬间升高和系统不可用的情况。

预热启动原理

当系统长期处于低水位时,若流量突然增加,可能会令系统水位瞬间升高,进而导致系统崩溃。通过配置预热启动规则,可以让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统崩溃。

预热启动功能借鉴了Guava的算法,通过随时调整斜率,在指定时间内将流量缓慢调整到特定阈值。

预热启动示例

例如,假设按照以下关键参数设置流控规则:

  • 统计维度当前接口
  • 流控效果预热启动
  • 预热时间 :200秒
说明 配置流控规则的具体步骤,请参见配置流控规则

启用该规则后,可以看到流量的增长趋势如下图所示:

dg_warm_up

上方示意图的含义如下:

  • 系统已处于闲置状态一段时间,此时收到大量请求(图示中①处)。
  • 预热启动期之后,系统开始按照规则定义的数量来处理请求(图示中②处)。