问题场景:基于springCloud的微服务搭建,建立网关服务基于Zuul。限流Filter
限流:即在一定时间内,特定的主题或者特定类型的请求数量做一定的限制limit,如果超过limit,则切断请求做固定返回。其目的和作用:维护系统稳定性、抵抗高峰期请求对系统的冲击。
算法:目前比较流行的算法有“漏桶限流算法”、“令牌桶限流算法”。
令牌桶限流算法:简单介绍思想:给定容器V,以恒定速率朝V中放入钥匙Y,如果V满 则停止放入Y。请求request来了,则去V中获取钥匙Ys,如果Vcurrent<Vmin 则请求抛弃或者等待V放入Y。对请求的速率是没有限制的,允许突发的大量的请求。
漏桶限流算法:请求以速率V进入水桶S,S以给定的速率V(常)响应,当V>V(常) 且当前S(current)>S(all)时,请求会丢失或者阻塞。因为响应速度恒定,所以这个常常被用来作为整流,保障请求比较平滑。
贴图来自百度: