网络流量或请求限流的常见算法:

4 min read
  1. 固定窗口算法(Fixed Window)

该算法将固定时间窗口内的请求数进行限制,即在一定时间内只能处理一定数量的请求。但是,如果在某个时间段内达到了请求数限制,则该时间段的其余请求都将被拒绝。

  1. 漏桶算法(Leaky Bucket)

该算法将请求数限制为固定速率,类似于漏桶,当请求到达时,被装入桶中,但如果桶已满,则无法接收新的请求。

  1. 令牌桶算法(Token Bucket)

该算法对固定速率进行限制,并将请求量分配给令牌,类似于令牌桶。每到达一个新的请求,需要获取一个令牌,如果没有令牌,则无法处理请求。

  1. 平滑限流算法(Smooth Limiting)

该算法通过分配跨越一段时间的请求限制,使请求在不同的时间段内平衡分布。这可以确保短时间内的请求变化不会导致整个系统出现问题。

  1. 混合算法(Hybrid)

该算法是基于多种限流算法的混合体。可以同时使用多个算法以提高算法的鲁棒性和可靠性。例如,可以使用Fixed Window算法和Leaky Bucket算法,以平衡时间和速率的限制,从而提高效率和准确性。