多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## StatisticSlot `StatisticSlot`是 Sentinel 的核心功能插槽之一,用于统计实时的调用数据。 * `clusterNode`:资源唯一标识的 ClusterNode 的 runtime 统计 * `origin`:根据来自不同调用者的统计信息 * `defaultnode`: 根据上下文条目名称和资源 ID 的 runtime 统计 * 入口的统计 Sentinel 底层采用高性能的滑动窗口数据结构`LeapArray`来统计实时的秒级指标数据,可以很好地支撑写多于读的高并发场景。 ![sliding-window-leap-array](https://user-images.githubusercontent.com/9434884/51955215-0af7c500-247e-11e9-8895-9fc0e4c10c8c.png) ### 源码分析 [Alibaba Sentinel LeapArray 源码分析 ](https://www.jianshu.com/p/1a2c917b46c9) ## 时间窗限流算法 > 了解滑动时间窗限流算法之前,我们先了解一下时间窗限流算法。 ![](https://img.kancloud.cn/e9/99/e9995ece72a82c1fea8626b66dca650b_1081x365.png) 特点: - 时间窗口`固定`,容易存在分布不均的问题,以致于无法达到限流效果。 ### 滑动时间窗 滑动时间窗是根据统计周期时间点倒推一个周期作为起点进行统计。 单位时间窗又分为多个样本窗口,各个样本窗口独立统计后再进行汇总,解决重复统计的问题。 时间戳-->样本时间窗口-->汇总统计结果。