问题现象

例如某个应用一共接入了5个节点,流控规则配置为单机QPS达到100的时候触发限流,如下图所示。

FAQ 单机流控

但是当客户端总请求量高于200 QPS的时候,就发现有限流QPS,与预期设置不符。

FAQ QPS数据.png

排查方法

  1. 登录AHAS控制台,在左侧导航栏选择流量防护 > 应用防护
  2. 单击资源卡片,进入应用详情页面。
  3. 单击接口详情,搜索对应的接口,查看该接口的总QPS是否正常。
  4. 接口详情页面右下方的分节点详情区域,查看对应时间每个节点的QPS数据。
    分节点详情
    通过排查发现,虽然接入了5个节点,但总请求量高于200 QPS的时候,只有2个节点有流量,单机QPS超过100,故触发了单机限流。

解决方法

您有以下两种解决方式:

  • 排查对应限流时间点上游的调度和日志,为何只请求到了某两个节点上。原因可能是SLB的健康检查或转发有问题、上游接口的调度出现反复重试或上游应用的调度出错等。找到对应原因,解决该问题,使每个节点均有流量,这样可以正常触发单机限流规则。
  • 如果您想控制整个接口的总流量,可以通过设置集群流控规则的方式,这样流控规则就不会随着节点的变化而影响整体阈值。集群流控的详情请参见集群流控