限流策略简述

限流策略指的是一种通过限制系统请求或者流量数量的方法,以防止系统的过载或崩溃。常见的限流策略包括:

  1. 计数器限流:设置一个阈值,每次请求都将计数器加一,当计数器达到阈值时,拒绝后续请求或者将请求放入队列中,等待处理。

  2. 令牌桶限流:通过维护一个令牌桶,限制系统的请求流量。令牌桶中存放着一定数量的令牌,每次请求需要获取一个令牌,当令牌桶中的令牌用尽时,拒绝后续请求或将请求放入队列中等待处理。同时,每隔一段时间会往令牌桶中放入一定数量的令牌。

  3. 漏桶限流:类似于令牌桶限流,不同的是漏桶不是令牌,而是通过固定速率将请求处理,当请求流量超过漏桶处理速率时,多余的请求将被拒绝或者放入队列中等待处理。

  4. 基于时间窗口的限流:通过设置一个时间窗口,例如每秒钟只允许处理一定数量的请求,当请求超过阈值时,拒绝后续请求或将请求放入队列中等待处理。时间窗口的长度和阈值可以根据实际情况进行调整。

下面通过代码demo展示基于时间窗口限流策略:单位时间内限定访问数量


/*
基于时间窗口的限流算法是一种常见的限流技术,
它通过限制在指定时间窗口内的请求数量来控制系统的并发请求量。
该算法可以灵活地控制请求的速率,通常用于对接口请求进行限流。
*/
public class TimeWindowLimiter {

        private int limit; // 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值