限流熔断

在网关服务中限流和熔断是一个非常重要的需求。

限流用来保障有限资源最大化的服务能力,熔断用来处理请求快速返回,避免堵塞在网关,造成网关故障。在限速的方案中,有两个经典的算法:

漏桶(Leaky Bucket)

漏桶算法的特点在于其通过请求的速率是恒定的,可以将流量整形的非常均匀,即便同时有 100 个请求也不会一次性通过,而是按一定间隔慢慢放行,这对后端服务迎接突发流量非常友好。

令牌桶(Token Bucket)

令牌桶,顾名思义桶里放的是一些令牌,这些令牌会按一定的速率往桶里放,假如每分钟限制 10 个请求,那么每分钟就往桶里放 10 个令牌,请求进来的时候需要先在令牌桶里拿令牌,拿到令牌则请求被放行,桶为空拿不到则意味着该请求被拒绝掉。

Last Updated:
Contributors: isno