四种常见服务限流算法解析

本文介绍了服务限流的重要性,讲解了计数器、滑动窗口、漏桶和令牌桶四种常见限流算法的定义、优缺点。计数器算法存在临界点问题,滑动窗口能避免流量翻倍但无法处理瞬时流量,漏桶算法平滑流量但可能导致请求等待,令牌桶允许一定程度的突发流量。选择限流算法需结合实际场景。
摘要由CSDN通过智能技术生成

什么是服务限流

限定固定请求数量访问服务端,保护服务接口

常用限流框架

常见的限流方式有:nginx限流、guava限流、sentinel、Redis等实现方式。
他们的本质算法都是基于 漏桶、令牌桶、滑动窗口来实现的。

常见的经典限流有计时器限流、滑动窗口限流、漏桶限流、令牌桶限流四种。

计数器限流算法

定义

  1. 定义一个单位时间(如1秒钟)的阈值,每收到一次请求,增加一次计数。
  2. 判断 请求总数 <= 当前单位时间内的阈值,则执行正常流程
  3. 如果请求总数 > 当前单位时间内的阈值, 则触发限流处理
  4. 进入到下一个单位时间,计数清零,开始新一轮的计数

缺点

计数器限流算法相对简单那,但是它的弊端还是很明显的,也就是临界点问题。假设1秒钟100的阈值,如果0-0.9秒都没有请求,最后0.9秒到1秒收到100个请求,下一秒1到1.1秒又收到100个请求,那么服务器所承受的压力就非常大了。(如果是0.99秒到1秒,0.999秒到1秒呢?tps暴增)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值