-
何为 Sentinel
-
添加依赖即可
-
整合成功之后,会暴露actuator/Sentinel端点,所以再添加如下依赖
-
还需要配置,才能暴露端点(默认是不暴露的)
-
新增规则
当关联的资源达到阈值,就限流自己
只记录指定链路.上的流量
Warm Up
◆ 根据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
- pullreq(已关闭) https://github.com/alibaba/Sentinel/pull/525
◆ 当系统load1 ( 1分钟的load )超过阈值,且并发线程数超过系统容量时触发,建议设置为CPU核心数* 2.5( 仅对Linux/Unix-like机器生效, Win无效)
◆ 系统容量 = maxQps * minRt ● maxQps :秒级统计出来的最大QPS ● minRt :秒级统计出来的最小响应时间 ● 相关源码:
-
com.alibaba.csp.sentinel.slots.system.SystemRuleManager#checkBbr
◆ RT : 所有入口流量的平均RT达到阈值触发 ◆ 线程数:所有入口流量的并发线程数达到阈值触发 ◆入口QPS : 所有入口流量的QPS达到阈值触发
系统 - 相关源码-
com.alibaba.csp.sentinel.slots.system.SystemRuleManager#checkSystem
-
推荐阅读 Alibaba Sentinel 规则参数总结
-
- 控制台如何获取到微服务的监控信息
- 用控制台配置规则时,控制台是如何将规则发送到各个微服务的呢?
◆ 注册/心跳发送 ● 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控制台配置项
-
修改配置
-
TestController
核心就是如图示的三个API,不过这样用起来很麻烦,后面就有简单方式哦!
- com.alibaba.csp.sentinel.annotation.aspectj.SentinelResourceAspect
- com.alibaba.csp.sentinel.annotation.aspectj.AbstractSentinelAspectSupport
启动类加上该注解即可
resttemplate.sentinel.enabled
相关源码●org. springframework.cloud.alibaba.sentinel.custom.SentinelBeanPostProcessor
Feign整合Sentinel
-
CC
● org.springframework.cloud. alibaba.sentinel.feign.SentinelFeign
Sentinel使用姿势总结
◆ 推拉模式持久化规则
- 推模式更佳
◆ AHAS
-
开通地址 https://ahas.console.aliyun.com/
-
开通说明 https://help.aliyun.com/document detail/90323.html
-
参考 服务容错模式