当前位置: 首页 > news >正文

火山安卓软件开发平台优化关键词排名公司

火山安卓软件开发平台,优化关键词排名公司,wordpress 需要空间,wordpress主题汉化是什么基本介绍 Sentinel中的簇点链路是由一个个的Node组成的,Node是一个接口。Node中保存了对资源的实时数据的统计,Sentinel中的限流或者降级等功能就是通过Node中的数据进行判断的。 Sentinel中是这样描述Node的: Holds real-time statistics…

基本介绍

Sentinel中的簇点链路是由一个个的Node组成的,Node是一个接口。Node中保存了对资源的实时数据的统计,Sentinel中的限流或者降级等功能就是通过Node中的数据进行判断的。

Sentinel中是这样描述Node的:

Holds real-time statistics for resources.

保存资源的实时统计信息。 

Node继承结构体系图: 

所有的节点都可以记录对资源的访问统计数据,所以都是StatisticNode的子类。

按照作用分为两类Node:

  • DefaultNode:代表链路树中的每一个资源,一个资源出现在不同链路中时,会创建不同的DefaultNode节点。而树的入口节点叫EntranceNode,是一种特殊的DefaultNode

  • ClusterNode:代表资源,一个资源不管出现在多少链路中,只会有一个ClusterNode。记录的是当前资源被访问的所有统计数据之和。

DefaultNode记录的是资源在当前链路中的访问数据,用来实现基于链路模式的限流规则。

ClusterNode记录的是资源在所有链路中的访问数据,实现默认模式、关联模式的限流规则。

链路模式:只针对从指定链路访问到本资源的请求做统计,判断是否超过阈值。 

 StatisticNode

StatisticNode实现了Node接口,其他的Node都继承了该接口。所以这个Node是一个最基础的Node,StatisticNode中保存了资源的实时统计数据(基于滑动时间窗口机制),通过这些统计数据,sentinel才能进行限流、降级等一系列操作。StatisticNode属性如下:

public class StatisticNode implements Node {/*** 秒级的滑动时间窗口(时间窗口单位500ms)*/private transient volatile Metric rollingCounterInSecond = new ArrayMetric(SampleCountProperty.SAMPLE_COUNT,IntervalProperty.INTERVAL);/*** 分钟级的滑动时间窗口(时间窗口单位1s)*/private transient Metric rollingCounterInMinute = new ArrayMetric(60, 60 * 1000, false);/*** The counter for thread count. * 线程个数用户触发线程数流控*/private LongAdder curThreadNum = new LongAdder();
}
public class ArrayMetric implements Metric {private final LeapArray<MetricBucket> data;
}
public class MetricBucket {
// 保存统计值private final LongAdder[] counters;
// 最小rtprivate volatile long minRt;
}

 在Sentinel中单独使用StatisticNode来作为统计节点的地方是统计来源节点相关的指标的时候,来源节点创建则是在ClusterBuilderSlot中。

DefaultNode 

DefaultNode 由俩个类EntranceNode跟DefaultNode继承

  • EntranceNode:该类的创建是在初始化Context时完成的(ContextUtil.trueEnter方法),注意该类是针对Context维度的,也就是一个context有且仅有一个EntranceNode。
  • DefaultNode:该类的创建是在NodeSelectorSlot.entry完成的,当不存在context.name对应的DefaultNode时会新建(new DefaultNode(resourceWrapper, null),对应resouce)并保存到本地缓存(NodeSelectorSlot中private volatile Map<String, DefaultNode> map);获取到context.name对应的DefaultNode后会将该DefaultNode设置到当前context的curEntry.curNode属性,也就是说,在NodeSelectorSlot中是一个context有且仅有一个DefaultNode。

DefaultNode结构如下:

public class DefaultNode extends StatisticNode {private ResourceWrapper id;/*** The list of all child nodes.* 子节点集合*/private volatile Set<Node> childList = new HashSet<>();/*** Associated cluster node.*/private ClusterNode clusterNode;
}

 DefaultNode持有指定的Context和指定的Resource的统计数据,意味着DefaultNode是以Context和Resource为维度的统计节点。这一点非常的重要,因为如果想对某个Context中某个Resource的进行限流等操作,就需要使用DefaultNode类型的节点来统计数据。源码中还描述到,多次在同一个上下文中获取资源,会产生一些子节点,这些子节点保存在DefaultNode的childList中。

EntranceNode代表调用链的入口节点,持有某个Context中调用的信息,同一个Context共享一个EntranceNode。EntranceNode的统计维度为Context。需要注意的是EntranceNode继承了DefaultNode。 

ClusterNode 

ClusterNode保存的是同一个Resource的相关的统计信息,是以Resource为维度的,不区分Context,这个是和DefaultNode的区别。

ClusterNode:簇点,用于统计每个资源全局的数据(不区分调用链路),以及存放该资源的按来源区分的调用数据(类型为 StatisticNode)。特别地,Constants.ENTRY_NODE 节点用于统计全局的入口资源数据。

http://www.dinnco.com/news/61433.html

相关文章:

  • 信阳网站建设常德今日头条新闻
  • 网站内页301重定向怎么做google官网入口
  • 有没有个人网站百度电脑版官网下载
  • 塑胶加工 技术支持 东莞网站建设seo资讯网
  • 鹰潭建设网站东莞企业网站排名
  • 政府网站做的不好百度大数据分析平台
  • 网站开发基础与提高整合网络营销公司
  • 专业开发网站建设哪家好怎么做好网站营销推广
  • 无觅wordpress揭阳市seo上词外包
  • 个人网站设计规划书搜索引擎营销的方法有哪些
  • 怎么做提高网站排名百度网页网址
  • 厦门网站建设及维护seo培训优化
  • 手机网站建设新闻互联网营销做什么
  • vip会员货源批发网站如何网络营销自己的产品
  • 国外企业档案馆网站的特色百度网盘官方
  • 国外外包网站百度网站认证
  • 网站优化分析全网整合营销外包
  • 嘉定网站设计百度网盘客服电话
  • 做设计的地图网站有哪些网络推广软件免费
  • 网站建设公司创业招商外包
  • 做评选活动的网站西安抖音seo
  • 福州网页建站维护有哪些产品推广方法有哪些
  • 做企业网站类型seo快速优化文章排名
  • 住房和城乡建设部网站行标广州seo招聘信息
  • 免费做网站模板在哪里做爱站网挖掘关键词
  • 苏州网站建设极简幕枫江门seo推广公司
  • 网站做付款页面短链接在线生成器
  • 网络域名申请条件国内seo做最好的公司
  • 免费网站推广网站不用下载百度关键词首页排名怎么上
  • 做新疆网站应该做哪方面的seo外推软件