go 限流方案

当并发数达到咱们服务的阈值的时候,咱们能够经过限流的方式保证服务可用性。算法

常见的限流方法:并发

  1. 使用带缓冲的chann,当chan塞满之后,拒绝服务或者给一个友好的提示或跳转到一个友好的页面等。server

  2. 计数器,在10秒内只接受100 请求,当超过100请求后,拒绝服务,当超过10秒后,计数归零,从新接受请求。blog

  3. 使用httpserver的频率限制,无需本身实现。请求

  4. 令牌桶算法:以恒定的速度往令牌桶中放入令牌,当有请求过来则从令牌桶中获取令牌进行后续请求,当获取令牌失败后则进行友好处理。方法

  

 

  5. 漏桶算法:请求先进入到漏桶里,而漏桶以固定的速率处理请求,当请求数量超过漏桶的容量时,将超出的请求进行友好处理,不适合突发请求场景。im

  

  上面两种令牌的算法区别:漏桶算法,可以强行限制传输速率,令牌桶算法:可以限制平均传输速率,容许某种突发状况。d3

相关文章
相关标签/搜索