这么多开源的限流框架,该宠幸谁呢?
2021/9/28 23:40:59
本文主要是介绍这么多开源的限流框架,该宠幸谁呢?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
大家好,架构摆渡人。这是我的第4篇原创文章,还请多多支持。
限流一直就是一个比较热门而又老旧的话题,但是作为应对高并发的手段之一,限流的热度一直都在。
前面我们大概的介绍了限流的背景,主流的限流算法,以及到底是选择自研还是选择开源的框架来实现限流功能,相关文章可以翻阅历史记录进行查看。
自研这条路没有一定的实力真的不好走,大多数的选择估计都是开源。那么我今天就介绍几款用的比较多的限流框架给大家。
Guava
Guava里自带了Ratelimiter用于限流,该类基于令牌桶算法实现流量限制功能。接入呢也比较简单,Ratelimiter不足的就是只能用于单机场景下的限流,一般场景下单机限流足够使用了。
如果想用Guava来实现单机的限流,还是得结合配置中心来使用。可以通过配置中心动态调整流控的力度,灵活度更高。
源码地址:https://github.com/google/guava
推荐指数:1 颗星
concuurency-limits
concuurency-limits是netflix推出的自适应限流组件,借鉴了TCP相关拥塞控制算法,主要是根据请求延时,及其直接影响到的排队长度来进行限流窗口的动态调整。
不难发现,netflix还是开源了很多实用的框架,只不过是长期维护下去比较难。不过很多框架的思想还是值得我们借鉴学习。
对于concuurency-limits我这边也是不推荐大家使用的,主要还是很久没更新了。但concuurency-limits的思想,还是要学习的。流控的最理想状态就是自适应限流,后面我们可以单独写篇文章来聊聊这个话题。
源码地址:https://github.com/Netflix/concurrency-limits
推荐指数:1 颗星
Resilience4j
相信大家都知道,Hystrix已经宣布不维护了,所以Spring官方推荐了一款新的框架代替Hystrix,这个框架就是Resilience4j。
Resilience4j是一个轻量级容错框架,设计灵感来源于Netflix 的Hystrix框架,为函数式编程所设计。
Resilience4j的功能非常强大,支持很多功能,如下图所示:
可以看到有很多强大的功能,比如熔断,限流,缓存,重试等。
源码地址:https://github.com/resilience4j/resilience4j
推荐指数:4 颗星
Sentinel
如果必须要我选择一款限流的框架,那必定是Sentinel无疑了。Sentinel 2012年诞生,至今已有9个年头,在阿里内部积累了大量的流量生产实践经验。目前的社区活跃度很高,很多公司都在使用,目前已经更新到了1.8.2版本,稳定性妥妥的。
Sentinel底层采用了滑动窗口算法实现,可以很好地支撑写多于读的高并发场景。除了单机限流,还支持集群限流,可以说完全满足了日常流控的需求。
如果你觉得自己搭建维护太麻烦,商业版的也有,要啥有啥,就是费钱。
源码地址:https://github.com/alibaba/sentinel
推荐指数:5 颗星
总结
最后,做个总结吧!还是给大家推荐Sentinel作为流控组件。理由呢在前面也讲过了,就不多说了。当你纠结的时候,好的选择就是跟着大部队走。
大家好,我是从古代穿越过来的美男子:架构摆渡人。我将把我的武功秘籍全部传授与你们,觉得有用请分享给身边的朋友。来个三连吧,感谢各位!
这篇关于这么多开源的限流框架,该宠幸谁呢?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南