只记录指定链路.上的流量
◆ 根据codeFactor(默认3)的值,从阈值/codeFactor ,经过预热时长,才到达设置的QPS阈值
【使用、流程、注意点、源码】
◆ RT默认最大4900ms
● 通过-Dcsp.sentinel.statistic.max.rt=xxx修改
注意点
时间窗口 < 60秒可能会出问题
相关源码
com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule#passCheck
这里与官方文档描述不同,参见issue
https://github.com/alibaba/Sentinel/issues/910
◆ Sentinel的断路器没有半开状态
◆ 相关Issue :
https://github.com/alibaba/Sentinel/pull/553#issuecomment-478318196
◆ 当系统load1 ( 1分钟的load )超过阈值,且并发线程数超过系统容量时触发,建议设置为CPU核心数* 2.5( 仅对Linux/Unix-like机器生效, Win无效)
◆ 系统容量 = maxQps * minRt
● maxQps :秒级统计出来的最大QPS
● minRt :秒级统计出来的最小响应时间
● 相关源码:
◆ RT : 所有入口流量的平均RT达到阈值触发
◆ 线程数:所有入口流量的并发线程数达到阈值触发
◆入口QPS : 所有入口流量的QPS达到阈值触发
◆ 注册/心跳发送
● com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender
◆通信API
● com.alibaba.csp. sentinel.command.CommandHandler的实现类
spring.cloud.sentinel.transport:
# 指定控制台的地址
dashboard: localhost:8080
# 指定和控制台通信的IP
# 如不配置,会自动选择一个IP注册
client-ip: 127 .0.0.1
# 指定和控制台通信的端口,默认值8719
# 如不设置,会自动从8719开始扫描,依次+1,直到找到未被占用的端口
port: 8719
# 心跳发送周期,默认值null
# 但在SimpleHttpHeartbeatSender会用默认值10秒
heartbeat- interval-ms: 10000
resttemplate.sentinel.enabled
●org. springframework.cloud.alibaba.sentinel.custom.SentinelBeanPostProcessor
● org.springframework.cloud. alibaba.sentinel.feign.SentinelFeign
◆ 推拉模式持久化规则
◆ AHAS
开通地址
https://ahas.console.aliyun.com/
开通说明
https://help.aliyun.com/document detail/90323.html
参考
服务容错模式