当前位置: 首页 > 网络应用技术

重新限制 - 流动限制

时间:2023-03-06 14:55:09 网络应用技术

  在指定的时间t中允许使用有限的用户行为,仅n次。Supposet为1秒,n是1000次。

  程序员设计了当前限制方案,该方案仅允许每分钟1000次。如图01:00s-02:00所示,仅允许1,000次访问。-02:00s要求1,000次,02:00s-02:01s要求1,000次。在这种情况下,在0.02之间要求01:59S-02:01S间隔。物种设计是错误的。

  漏斗能力有限。当流水的速度小于灌溉速度时,漏斗将溢出水。使用此原理,我们可以设计一个当前的限制代码!漏斗的其余空间表示当前行为的连续收益数(请求)。漏斗的流速表示系统允许行为的最大频率(请求)。通常,设置了安装系统的处理能力来设置值。

  测试代码:计算机的代码速度将在下面运行。我可以在TimeUnit.seconds.seep(2)之后的一段时间后模拟客户端。设置漏斗容量为10,0.002请求(2次/秒)每毫秒,请求的数量为1;

  检测结果:

  我们使用哈希结构将漏斗的属性字段放入哈希列表并在代码中执行操作

  测试代码:

  测试结果:与上述Java代码结构一致

  上面提到了达到漏斗限制的两种方法。实际上,这两个想法都是相同的,但是它们都不能在分布式环境中使用。即使在单位环境中,它也是不准确的。问题,因此我们通常使用Redis提供的电流限制模块REDIS细胞来限制电流。Redis-Cell提供了原子流量限制指令Cl.Throttle。