Interface RateLimiter

All Known Implementing Classes:
FixedWindowRateLimiter, SlidingWindowRateLimiter, TokenBucketRateLimiter

public interface RateLimiter
限流器接口

定义限流器的基本方法

Author:
Kerbores(kerbores@riemann.tech)
  • Method Summary

    Modifier and Type
    Method
    Description
    获取支持的限流算法
    boolean
    tryAcquire(String key, double permitsPerSecond)
    尝试获取许可(默认1秒窗口)
    default boolean
    tryAcquire(String key, int permits, long windowSizeMs)
    尝试获取许可(自定义时间窗口)
  • Method Details

    • tryAcquire

      boolean tryAcquire(String key, double permitsPerSecond)
      尝试获取许可(默认1秒窗口)
      Parameters:
      key - 限流key
      permitsPerSecond - 每秒允许的请求数
      Returns:
      是否获取成功
    • tryAcquire

      default boolean tryAcquire(String key, int permits, long windowSizeMs)
      尝试获取许可(自定义时间窗口)
      Parameters:
      key - 限流key
      permits - 时间窗口内允许的请求数
      windowSizeMs - 时间窗口大小(毫秒)
      Returns:
      是否获取成功
    • getAlgorithm

      RateLimitAlgorithm getAlgorithm()
      获取支持的限流算法
      Returns:
      限流算法