pub struct SlidingWindowLogLimiter { /* private fields */ }Expand description
滑动窗口日志算法(Sliding Window Log)
与滑动窗口计数器不同,日志算法记录每个请求的精确时间戳, 提供更精确的限流(无边界突刺),但内存占用更高。
Implementations§
Source§impl SlidingWindowLogLimiter
impl SlidingWindowLogLimiter
Sourcepub fn with_max_keys(self, max_keys: usize) -> Self
pub fn with_max_keys(self, max_keys: usize) -> Self
配置最大 key 数量
Sourcepub fn max_requests(&self) -> u64
pub fn max_requests(&self) -> u64
最大请求数
Sourcepub fn window_size(&self) -> Duration
pub fn window_size(&self) -> Duration
窗口大小
Sourcepub fn current_count(&self, key: &str) -> usize
pub fn current_count(&self, key: &str) -> usize
当前窗口内请求数
Sourcepub fn acquire(&self, key: &str) -> Result<RateLimitResult, RateLimitError>
pub fn acquire(&self, key: &str) -> Result<RateLimitResult, RateLimitError>
尝试获取一个请求
Auto Trait Implementations§
impl Freeze for SlidingWindowLogLimiter
impl RefUnwindSafe for SlidingWindowLogLimiter
impl Send for SlidingWindowLogLimiter
impl Sync for SlidingWindowLogLimiter
impl Unpin for SlidingWindowLogLimiter
impl UnsafeUnpin for SlidingWindowLogLimiter
impl UnwindSafe for SlidingWindowLogLimiter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more