相较于普通的单机流控,集群流控可以精确控制集群内某个服务的实时调用总量。在网关防护中采用集群流控,用户可无需关心负载均衡状况和网关数量,只需配置总阈值即可完成操作。本文主要介绍设置集群流控的操作步骤。

计费说明

自2021年03月22日起,集群流控功能公测期结束,正式开始收费。集群流控功能按应用申请的QPS量级收费,具体收费方式,请参见价格页面

说明 在2021年03月22日之前创建,且在2021年03月22日之后未进行变更的集群暂不开启计费。

集群流控试用档位的Token Server可供您继续测试使用,不会产生额外费用。试用档位单个应用QPS阈值之和不超过2000,接口总流量不超过3000。

说明 试用档位仅供测试效果使用,不保证稳定性,请勿在生产环境使用。

前提条件

  • 已开通AHAS专业版,若没有开通,请进入开通页面
  • Spring-Cloud-Gateway-Starter-AHAS-Sentinel和Spring-Cloud-Zuul-Starter-AHAS-Sentinel版本≥v1.3.7,对应AHAS-Sentinel-Client版本≥v1.8.8。Agent版本≥v1.8.6。

步骤一:选择档位创建集群

  1. 登录AHAS控制台,然后在页面左上角选择地域。
  2. 在控制台左侧导航栏中选择流量防护 > 网关防护
  3. 网关防护页面单击目标应用卡片。
  4. 在网关防护管理页左侧导航栏,单击集群流控
  5. 集群流控资源配置区域内,单击右下角的编辑
  6. 选择集群类型生产,滑动指针选择集群流控的总配置量级,单击保存,然后在对话框中单击确认

    总配置量级即最大QPS,表示需要流控的接口所能承载的预估的最大QPS,代表可能到来的最大流量。

    说明 实际流量(无论是否被流控)超出配置的最大QPS后,流控策略会退化到单机模式。为保证流控效果,阈值之和上限为配置最大QPS的95%,例如最大QPS选择100000 ,则所有规则阈值之和最大值为95000。
    选定总配置量级档位并创建集群后,系统会自动为该应用分配集群的Token Server。
  7. 可选:单击Token Client设置区域操作列的编辑,设置Token请求超时时间,然后单击确定

    在某些场景下,集群流控Client与Token Server之间的网络通信时延较高,需要调整超时时间。

    说明
    • AHAS Sentinel Client 1.6.0及以上版本支持设置Token Client。
    • Token请求超时时间单位为ms,取值范围为(0,10000],一般不建议超过20 ms。公网环境网络延时较高,建议设置超时时长约为50 ms,但不建议超过80 ms。

步骤二:设置集群流控规则

  1. 在网关防护管理页左侧导航栏,单击规则管理
  2. 单击集群流控规则页签,然后单击新增集群流控规则
  3. 新增集群流控规则对话框,设置相关参数。
    参数 描述 示例
    接口名称 设置接口名称,为对应网关的Route ID或自定义API分组名称。 httpbin_route
    是否开启 开启此开关,规则即生效;关闭此开关,规则不生效。 开启
    集群阈值 表示该接口的限流阈值。 100
    统计窗口时长 集群流控统计的时间窗口长度,取值范围为1秒~24小时。 1秒
    失败退化策略 当出现连接失败、通信失败或Token Server不可用等情况时,流控规则是退化到单机限流的模式或是直接通过忽略失败情况:
    • 退化到单机限流:当出现通信失败的情况时,退化到设置的单机阈值来进行流控。需要在规则中配置单机退化阈值,代表单机的兜底阈值。
    • 直接通过:当出现通信失败的情况时,请求直接通过。
    退化到单机限流
    退化阈值自动调整 开启后会自动调整退化阈值,默认关闭。
    说明 此功能需要SDK版本≥1.8.6。
    关闭
    退化单机阈值 代表单机的兜底阈值,当失败退化策略选择退化到单机限流时,需要设置此选项。
    说明 只有在没有开启 退化阈值自动调整的情况下,才需要手动填写 退化单机阈值。若开启 退化阈值自动调整,您无需填写 退化单机阈值,而需设置 自动调整增量值
    10
    自动调整增量值 当开启退化阈值自动调整时,需要设置自动调整的增量。这是在根据接口阈值与应用机器数量计算出的单机均摊流量基础上,用来提供保护退化阈值的一个增量。即单机均摊流量加上增量值为实际生效退化阈值。 2
  4. 单击新建,完成规则创建。
    创建规则完成后,可以在 规则设置页面查看到创建的集群流控规则, 阈值模式集群总体网关防护-集群流控