RateLimiter 限流算法使用

Rate Limiter 是一种限流算法,用于控制系统中的资源使用率。它可以用于限制用户的访问速度,防止系统被过度访问,从而导致系统崩溃或性能下降。 通常用于网络服务、 API 接口和数据库等领域,以确保系统的稳定性和可靠性。

原理

Rate limiter 的基本原理是通过设定一个访问速率的上限来限制资源的使用。当有多个用户同时访问系统时,Rate limiter 会根据预先设定的速率来限制每个用户的访问速度,从而保证系统的负载均衡和性能。 Rate limiter 可以通过多种方式实现,包括基于时间的限流、基于流量的限流和基于请求次数的限流等。不同的限流算法可以根据具体的应用场景和需求来选择。

基本使用

工具类


import com.google.common.util.concurrent.RateLimiter;
import org.springframework.stereotype.Service;

@Service
public class ApiRateLimiter {
    /*每秒控制60个许可*/
    RateLimiter rateLimiter = RateLimiter.create(60.0);

    /**
     * 获取令牌
     */
    public boolean tryAcquire() {
        return rateLimiter.tryAcquire();
    }
}

调用控制

if (apiRateLimiter.tryAcquire()) {
// 有令牌才会执行方法
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值