Redisson实现的 , 还是比较稳的 , 这里就不测试了 。
关于Redission是怎么实现这个限速器的 , 大家可以看一下参考[3] , 还是Redisson家的老传统——Lua脚本 , 设计相当巧妙 。
总结在这篇文章里 , 我们对四(三)种限流算法进行了分布式实现 , 采用了非常好用的Redission客户端 , 当然我们也有不完善的地方:
- 并发处理采用了分布式锁 , 高并发情况下 , 对性能有一定损耗 , 逻辑最好还是直接采用Lua脚本实现 , 来提高性能
- 可以提供更加优雅的调用方式 , 比如利用aop实现注解式调用 , 代码设计也可以更加优雅 , 继承体系可以完善一下
- 没有实现限流的拒绝策略 , 比如抛异常、缓存、丢进MQ打散……限流是一种方法 , 最终的目的还是尽可能保证系统平稳
除此之外 , 市面上也有很多好用的开源限流工具:
- Guava RateLimiter , 基于令牌桶算法限流 , 当然是单机的;
- Sentinel , 基于滑动窗口限流 , 支持单机 , 也支持集群
- 网关限流 , 很多网关自带限流方法 , 比如Spring Cloud Gateway、Nginx
好了 , 这期文章就到这里了 , 我们下期见 。
参考:[1]. 面试官:来 , 年轻人!请手撸5种常见限流算法!
[2].https://zhuanlan.zhihu.com/p/479956069
[3].https://Github.com/oneone1995/blog/issues/13
【四种分布式限流算法实现!】
推荐阅读
- 岁寒三友是指哪三个植物 花中四君子指的是哪四种花
- 银耳汤四种人不宜喝发胖 银耳汤四种人不宜喝
- 分布式基础理论 CAP & BASE
- 爱美姐妹发型别乱剪,不如看看这四种,让你心动
- 你还在为减肥而苦恼吗?中医告诉你肥胖分四种类型,不同类型饮食减肥法
- 四种在 JavaScript 中进行 API 调用的方法
- 翡翠|翡翠染色造假的方法主要有这四种,方法不同,鉴别的重点也不同!
- 无限流小说是什么意思是啥 无限流小说是什么意思
- 社保卡有四种颜色?人社部:属误解误读
- 曹云金|知情人回应曹云金直播限流:换团队没钱买流量,郭德纲没空搭理你