目录
一.流控规则
1.流控模式:
直接,达到阈值直接限流抛出异常。关联,当关联的资源达到阈值,就限流自己(应用场景是,控制是优先读数据库还是优先写数据库)。链路,只记录链路上的流量。
2.流控效果:
快速失败,直接失败抛异常。warm up,根据 code Factor(默认3)的值,从阈值/ code Factor,经过预热时长,才到达设置的QPS阈值。即预热/冷启动方式。当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。排队等待,让请求以均匀的速度通过,对应的是漏桶算法。注意:阈值类型必须设置成QPS(适用于突发流量空闲时候处理)
二.降级规则
1.降级策略:
RT(平均降级时间),平均响应时间(秒级统计)超出阈值&&在时间窗口内通过通过请求>=5 ----->触发降级(断路器打开)----->时间窗口结束----->关闭降级。注意点:RT默认值是4900ms通过 Dcsp.sentinel. statistic. max.rt=XX修改。异常比例,QPS>=5&&异常比例(秒级统计)超过阈值----->触发降级(断路器打开)----->时间窗口结束----->关闭降级。异常数,异常数(分钟统计)超过阈值----->触发降级(断路器打开)----->时间窗口结束----->关闭降级。注意点:时间窗口<60秒可能会出问题!
三.热点规则
某些参数的QPS比较高的情况设置热点规则能让指定参数QPS降低提高API的可用性,注意点:参数类型必须是基本类型或者string
四.系统规则
当系统load1(1分钟的load)超过阈值,且并发线程数超过系统容量时触发,建议设置为CPU核心数*2.5。(仅对Lnux/Unixike机器生效),系统容量= maxQps* minrt maxqps:秒级统计出来的最大QPS minrt:秒级统计出来的最小响应时间。RT:所有入口流量的平均RT达到阈值触发。线程数:所有入口流量的并发线程数达到阈值触发。入口QPS:所有入口流量的QPS达到阈值触发。
五.授权规则
资源允许某个微服务访问(白名单)或者是禁止某个微服务访问(黑名单)
六.sentinel是怎么和控制台通信的
七.控制台相关配置项
八.sentinel API
SphU,定义资源让资源受到监控并且可以保护资源。Tracer,可以对我们想要的异常进行统计ContextUtil,可以实现调用来源还可以标记调用。