不使用@SentinelResource
注解:
@GetMapping("/testA")
public String testA() {
// try { TimeUnit.MILLISECONDS.sleep(800);} catch (InterruptedException e) { e.printStackTrace();}
return "-------------------testA";
}
使用@SentinelResource
注解:
@GetMapping("/byResource")
@SentinelResource(value = "byResource", blockHandler = "handle_byResource")
public CommonResult<Payment> byResource() {
return new CommonResult<>(200, "按资源名称 限流测试", new Payment(1000L, "No0000001", new Date()));
}
public CommonResult<Payment> handle_byResource(BlockException e) {
return new CommonResult<>(444, e.getClass().getCanonicalName() + "\t 服务不可用");
}
Sentinel控制台簇点链路:
注意,除了
@GetMapping
注解中的value值, @SentinelResource
注解中的value值同样被添加进入资源列表
此时配置流控等规则时,应配置@SentinelResource
注解中的value值,即例子中的byResource
!
or
区别于不使用@SentinelResource
注解的