什么是流量控制?

分布式流量控制就是在分布式系统下,控制每个服务器接收的请求数,以保证服务器来得及处理这些请求,也就是说尽可能保证用户请求持续地被处理,而不是让大量的用户请求“阻塞”在服务器中,等待被执行。

分布式系统流量控制策略

  • 消息队列
  • 漏桶策略
  • 令牌桶策略

漏桶策略

image.png

流量整形,即无论流量多大,即便是突发的大流量,输出依旧是一个稳定的流量。但其缺点是,对于突发流量的情况,因为服务器处理速度与正常流量的处理速度一致,会丢弃比较多的请求。

漏桶策略适用于间隔性突发流量且流量不用即时处理的场景.

令牌桶策略

桶里放着很多令牌,请求只有拿到令牌才能被服务器处理。

image.png

当有突发大流量时,只要令牌桶里有足够多的令牌,请求就会被迅速执行。通常情况下,令牌桶容量的设置,可以接近服务器处理的极限,这样就可以有效利用服务器的资源。因此,这种策略适用于有突发特性的流量,且流量需要即时处理的场景。

总结

image.png