RateLimiter解读

RateLimiter严重依赖RateStatistics实现,其主要作用是限制最大码率,主要逻辑是,设置最大码率,通过RateStatistics计算一个时间窗口内的码率,每次调用TryUseRate时,判断加上该包到时间窗口中去后加上原有的码率会不会超出最大码率。

主要函数:

void RateLimiter::SetMaxRate(uint32_t max_rate_bps) :设置限制的最大码率

bool RateLimiter::SetWindowSize(int64_t window_size_ms) :码率计算是在该时间窗口内

bool RateLimiter::TryUseRate(size_t packet_size_bytes) :获得当前的码率,然后加上packet_size_bytes大小产生的码率增量,判断是否超过最大码率

你可能感兴趣的:(RateLimiter解读)