Sentinel 中滑动窗口算法实现
摘要
滑动窗口算法是一种用于限流的精确度更高的算法。它将时间周期划分为多个小周期,每个小周期对应一个存储计数的桶。当请求到达时,算法会将请求计数加1,并更新窗口。最后,算法会取出统计区间内的有效窗口,并计算总和。在Sentinel中,滑动窗口算法使用定长的数组来存储窗口数据。通过实现核心操作,包括计数窗口的更新和统计区间的求和,Sentinel实现了滑动窗口算法的限流功能。在具体实现中,通过基于当前时间戳求解应属窗口的startTime,可以确定目标窗口的位置,从而进行相应的计数和统计。