如何实现接口限流?

如何实现接口限流?

  • 窗口思想
  • 漏桶算法
  • 令牌桶算法

窗口思想

对于每个窗口,限制窗口的请求个数,已时间为窗口区分,在每个窗口期间,只允许固定数量的请求到来,这样就解决了段时间大量请求到来的情况。

对于一个窗口的后半截与下一个窗口的前半截组合成的一个窗口导致接口压力,可以使用动态窗口,一个窗口包含多个快,前边的快时间到期后,就在窗口后添加一块

漏桶算法

很好理解,来的请求都装入桶中,通以一定的速率漏出请求,当桶已经满了之后,溢出来的请求就不会处理

漏桶算法有一个明显的缺陷,如果一时间来了一批,即使服务器没有什么负载,请求还是得排队进入。影响效率

令牌桶算法

桶以一定的速率添加令牌,溢出的令牌就丢弃,请求去桶中拿令牌,只要拿到令牌就可以访问

你可能感兴趣的:(面经,系统架构,java)