Zuul的用法——限流

因为所有的对外提供的接口都是要经过Zuul的转发,所以在这里的Pre过滤器里面做限流是最好的。

常用的限流算法有

1.计数器法,可以看做是低精度的滑动窗口算法

2.滑动窗口,需要更多的存储空间

3.漏桶算法,

4.令牌桶算法,运行流量在一定程度上的突发,实践简单,对用户更友好,采用得更多。

我这里采用的就是令牌桶算法,其原理如下

令牌桶算法

guava里面有令牌桶算法的实现

在浏览器多刷几次就会被限流给禁止访问了

代码: https://github.com/hmilyos/springCloud-api-gateway.git        rateLimit分支

限流的代码之所以这么少,是因为利用了现有的工具包,推荐下面这个限流控制,感觉挺不错的,有空值得研究一下https://github.com/marcosbarbero/spring-cloud-zuul-ratelimit

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 聊聊高并发系统限流特技-1来自开涛的博客 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是...
    meng_philip123阅读 6,684评论 1 20
  • 最近一直都在研究压力测试客户端的问题,如果突破客户端压力测试线程,端口等问题,如果服务器端处理网络请求处理不过来,...
    望月成三人阅读 8,680评论 1 25
  • 缓存 缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪。使用缓存不单单能够提升...
    阿斯蒂芬2阅读 12,215评论 1 28
  • 文/发光的小宇宙 (一) 周六加班,中午回到家,孙先生从厨房出来,桌上已经摆好了两个菜,我打着洗洗手的旗号去厨房一...
    发光的小宇宙阅读 895评论 1 12