获得徽章 1
#青训营笔记创作活动#
12月8日 day1
知道了二十款IDEA插件,全都没用过哈哈,耶,又学到很多[憨笑]
评论
#青训营笔记创作活动#
12月7日 打卡day1
限流:限制到达系统的并发请求数量,保证系统能够正常响应部分用户请求,对于超过上限的流量,则通过拒绝服务的方式保证整体系统的可用性

对服务器常用的限流方式:
1.计数器 (最简单的限流算法)
原理:在一段时间间隔内,对请求进行计数,与阈值进行比较判断是否需要限流,一旦到了时间临界点,将计数器清零
优点:固定时间段来计数,实现简单,适用不太精准的场景
缺点:对单位时间的边界没有很好的处理,导致限流不能精准控制
2.滑动窗口
原理:把固定时间片进行划分,且随着时间而进行移动,固定数量的可以移动的格子,进行计数并判断阈值
优点:将固定时间段分块,时间比 1 复杂,适用于稍微精准的场景
缺点:实现稍微复杂,不能彻底解决 1 存在的时间的边界问题
3.漏桶
原理:固定容量,按照固定速率流出水滴
优点:可以很好的控制消费频率
缺点:实现稍微复杂,单位时间内,不能多消费,不太灵活
4.令牌桶(强烈推荐)
优点:可以解决 3 不能灵活消费的问题,又能避免过度消费
缺点:实现稍微复杂
5.Redis + Lua 分布式限流:
优点:支持分布式限流,有效保护下游依赖的服务资源
缺点:依赖Redis,对边界没有很好的处理,导致限流不能精准控制
展开
评论
个人成就
文章被阅读 373
掘力值 13
收藏集
0
关注标签
0
加入于