适合网站开发工程师的公司,思而忧网站,seo关键词怎么优化,企业网站建设顾问调用链和统计节点构建完成#xff0c;进入统计指标插槽#xff0c;统计指标在最后执行的#xff0c;等后面的插槽执行完#xff0c;资源调用完成了#xff0c;根据资源调用情况累计。指标统计是最重要的插槽#xff0c;所有的功能都依靠指标数据#xff0c;指标的正确与… 调用链和统计节点构建完成进入统计指标插槽统计指标在最后执行的等后面的插槽执行完资源调用完成了根据资源调用情况累计。指标统计是最重要的插槽所有的功能都依靠指标数据指标的正确与否及时与否决定着系统的稳定性正确性 上图是统计指标的类互动图
统计数据来源是指标统计插槽的increaseThreadNum/addPassRequest/increaseBlockQps分别是增加线程数通过请求数阻塞数可看出统计是累加
ENTRY_NODE 统计所有IN类型调用专用于系统插槽; OriginNode统计调用方DefaultNode统计Context下资源统计ClusterNode统计全局即所有Context下一类资源的统计
下面分析统计指标原理下图是统计指标的原理图sentinel用滑动窗口统计指标 上图展示是一个StatisticNode内的情况其他的nodeclusterNodeDefaultNode都继承StatisticNode圆形/方形/三角形代表着某类型指标(passblock等)一次增加数一段时间多个线程调用资源产生多个的指标增加数如一个窗口时段内多个图形时间窗口时段内增加指标数落入时间窗口内即WindowWrap对象内限流插槽调用metric获取该时间窗口内所有指标增加值(LongAdder表示)累加在一起
下面以请求通过数代码为例子 上图StatisticNode往ArrayMetric增加pass数countcount通常1代表当前请求 上图ArrayMetric获取当前窗口往窗口增加pass数一段时间可以有不同线程调用同一资源窗口包含多个paas数 上图ArrayMetric获取当前滑动窗口(currentWindow)窗口内包括该时段内所有增加指标值MetricBucket是增加指标值载体累加所有MetricBucket的pass得到该时间窗口请求通过总数 StatisticNode 窗口时段内总述除以窗口时段换算成秒即一秒的pass数后续的限流插槽适用该指标
正所谓大道至简滑动窗口原理看了一段时间想不到实现原理是这么简单