大家好,架构摆渡人。这是我的第4篇原创文章,还请多多支持。
限流一直就是一个比较热门而又老旧的话题,但是作为应对高并发的手段之一,限流的热度一直都在。
前面我们大概的介绍了限流的背景,主流的限流算法,以及到底是选择自研还是选择开源的框架来实现限流功能,相关文章可以翻阅历史记录进行查看。
自研这条路没有一定的实力真的不好走,大多数的选择估计都是开源。那么我今天就介绍几款用的比较多的限流框架给大家。
Guava
Guava里自带了Ratelimiter用于限流,该类基于令牌桶算法实现流量限制功能。接入呢也比较简单,Ratelimiter不足的就是只能用于单机场景下的限流,一般场景下单机限流足够使用了。
如果想用Guava来实现单机的限流,还是得结合配置中心来使用。可以通过配置中心动态调整流控的力度,灵活度更高。
源码地址:https://github.com/google/guava
推荐指数:1 颗星
concuurency-limits
concuurency-limits是netflix推出的自适应限流组件,借鉴了TCP相关拥塞控制算法,主要是根据请求延时,及其直接影响到的排队长度来进行限流窗口的动态调整。
不难发现,netflix还是开源了很多实用的框架,只不过是长期维护下去比较难。不过很多框架的思想还是值得我们借鉴学习。
对于concuurency-limits我这边也是不推荐大家使用的,主要还是很久没更新了。但concuurency-lim