扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
小编给大家分享一下Sentinel服务治理知识点有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
创新互联专注于企业网络营销推广、网站重做改版、措美网站定制设计、自适应品牌网站建设、H5场景定制、商城网站定制开发、集团公司官网建设、外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为措美等各大城市提供网站开发制作服务。
把随机来的流量进行整形,将流量控制在系统的能力范围内,增强应用可用性。
通过运行指标控制
1.基于QPS。备注:使用RuleConstant.FLOW_GRADE_QPS策略
2.线程数。备注:使用RuleConstant.FLOW_GRADE_THREAD策略
通过资源的调用关系控制
1.根据调用来源限流
分为不区分调用来源、针对特定的调用者、针对除特定应用以外的调用者三种类型
备注:通过AbstractRule.setLimitApp来实现
2.关联限流
通过控制当前资源关联流量实现。
备注:使用RuleConstant.STRATEGY_RELATE和FlowRule.ref_identity策略
3.链路限流
在调用链路中,通过只根据某个入口的统计信息对资源限流量。
备注:使用RuleConstant.CHAIN和FlowRule.ref_identity策略
流量控制结果
快速失败:流量超过阀值则快速失败FlowException或者返回mock数据。
预热模式:通过的流量缓慢增加,经过设置的预热时间以后,到达系统处理请求速率的设定值。默认会从设置的QPS阈值的1/3开始慢慢往上增加至QPS设置值。
备注:使用RuleConstant.CONTROL_BEHAVIOR_WARM_UP_RATE_LIMITER策略。
排队等待:严格控制请求通过的间隔时间,请求匀速通过。需设置具体的超时时间,当计算的等待时间超过超时时间时请求就会被拒绝。
备注:通过CONTROL_BEHAVIOR_RATE_LIMITER来实现
熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出 DegradeException)。
熔断降级支持的策略:
RT模式:资源的平均响应时间都超过阈值(秒级平均RT,以ms为单位),资源调用会被熔断。在接下的降级时间窗口(在降级规则中配置,以s为单位)之内,对这个方法的调用都会自动返回(抛出 DegradeException)。
备注:使用RuleConstant.DEGRADE_GRADE_RT策略
异常比例模式:当资源的每秒异常数占通过量的比值超过阈值之后,资源进入降级状态,即在接下的降级时间窗口(在降级规则中配置,以s为单位)之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是[0.0, 1.0],代表0%-100%。
备注:使用RuleConstant.DEGRADE_GRADE_EXCEPTION_RATIO策略
分钟级异常数模式:当资源最近1分钟的异常数目超过阈值之后会进行熔断。
备注:使用RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT策略
通常对弱依赖进行熔断,对强依赖进行隔离降级。
弱依赖:若依赖的第三方应用出错不会影响而整体流程,则称之为弱依赖。
强依赖:若依赖的第三方应用或组件,或者应用自身的内部方法出错会影响而整体流程,则称之为强依赖。
热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的Top K数据,并对其访问进行限制。比如:
商品ID为参数,统计一段时间内最常购买的商品ID并进行限制
用户ID为参数,针对一段时间内频繁访问的用户ID进行限制
备注:使用ParamFlowRule.setParamFlowItemList和ParamFlowRuleManager.loadRules
实际情况下流量到每台机器可能会不均匀,仅靠单机维度去限制的话会无法精确地限制总体流量。通过精确地控制整个集群的调用总量,结合单机限流,实现集群整体防护。
集群流控中共有两种身份:
Token Client:集群流控客户端,用于向所属 Token Server 通信请求 token。集群限流服务端会返回给客户端结果,决定是否限流。
Token Server:即集群流控服务端,处理来自 Token Client 的请求,根据配置的集群规则判断是否应该发放 token(是否允许通过)。
备注:通过ClusterTokenServer和ClusterTokenClient实现
从Load、总体平均RT、入口QPS和线程数几个维度进行监控,平衡系统负载与入口流量,提高整体稳定性。
系统规则支持四种阈值类型:
Load(仅对 Linux/Unix-like机器生效):当系统 load1 超过阈值,且系统当前的并发线程数超过预计的系统容量时才会触发系统保护。
备注:通过SystemRule.highestSystemLoad实现
RT:当单台机器上所有入口流量的平均RT达到阈值即触发系统保护,单位是毫秒。
备注:通过SystemRule.avgRt实现
线程数:当单台机器上所有入口流量的并发线程数达到阈值即触发系统保护。
备注:通过SystemRule.maxThread实现
入口QPS:当单台机器上所有入口流量的QPS达到阈值即触发系统保护。
备注:通过SystemRule.qps实现
看完了这篇文章,相信你对“Sentinel服务治理知识点有哪些”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流