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大小产生的码率增量,判断是否超过最大码率

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容