技术栈

slidding window

Artech
2 年前
rate limiting·fixed window·slidding window
两种基于时间窗口的限流器的简单实现之前开发的一款基于OpenTelemetry的Tracing组件需要使用基于速率限制(Rate Limiting)的跟踪采样策略,本想使用现有的解决方案,比如System.Threading.RateLimiting命名空间下的RateLimiter。大体看了RateLimiter的三种实现(固定窗口、滑动窗口和令牌桶),觉得过于相对复杂了点,代码还涉及到锁,而且提供的功能我也不太需要,于是尝试实现一种简单且无锁解决方案。