1、官网文档地址:https://github.com/alibaba/Sentinel/wiki/%E7%86%94%E6%96%AD%E9%99%8D%E7%BA%A7
Sentinel的断路器是没有半开状态的

sentinel 使用
降级:
慢调用比例:
选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
@GetMapping("testD")
public String testD() {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
//log.info("TestB运行中.....");
return "测TestD中RT配置";
}

使用jmeter

再次访问testD

异常比例:
当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。

@GetMapping("testC")
public String testD1() {
int i = 10 / 0;
//log.info("TestB运行中.....");
return "测TestC中异常比例配置";
}
第一次访问:返回报错信息,(这个是有代码带来的)

快速访问后:

当停止访问1s后,再次访问,访问返回又是代码返回值。
异常数:
当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

访问第六次的时候返回的界面:

熔断时长设置大于等于1分钟,这里测试的时候曾经设置成1s失效时间也是要1分钟后才失效,找了去年时候官网文档
上解释的统计时间窗口是分钟级别的,如果时间窗口设置小于60s,则结束熔断状态后任然可能进入熔断状态。
热点key规则:
@GetMapping("testHotkey")
@SentinelResource(value = "testHotkey", /*defaultFallback = "hotkeyHandler"*/blockHandler = "handler")
public String testHotkey(
@RequestParam(value = "p1",required = false) String p1,
@RequestParam(value = "p2",required = false) String p2) {
return "测试热点key限流";
}
public String handler(String p1, String p2, BlockException e) {
return "fdsfdsfdsf " + e.getMessage();
}
public String hotkeyHandler() {
return "触发降级方法!";
}

参数索引:0代表方法上第一个参数