上一节主要讲述了Sentinel概念和安装使用,本节主要讲下上一节中DemoController类中用法及演示。
SentinelResource注解
SentinelResource(value = "aaa",blockHandler ="blockHandler",fallback = "fallCustomeer",defaultFallback = "fall")
value为资源名称,可在Sentinel控制台-新增流控或降级规则等,资源名要和value的值保持一致,才触发该资源下一系列的流控或降级的动作。
blockHandler为流控或降级触发时指向的方法,即JAVA代码方法。如下
public String blockHandler(int id, BlockException e){
if (e instanceof FlowException){
return "当前请求过于火爆,您已被流量控制!!!";
}
if (e instanceof DegradeException){
return "当前请求过于火爆,你已被降级!!!";
}
if (e instanceof ParamFlowException){
return "当前请求过于火爆,您已被热点参数限流!!!";
}
return "服务器快爆了,请稍后再试";
}
注意下FlowException、DegradeException和ParamFlowException三个异常类。
fallback为自定义的发生异常时回调执行的参数,
defaultFallback为默认发生异常时回调执行的参数,如何此时fallback也有定义,默认执行自定义方法,两者二选一就好。
请求尝试
http://localhost:8998/demo/4
上述地址多尝试几次,打开
http://127.0.0.1:9191/
至于流控、降级、异常处理一一尝试。
本节主要尝试加理解为主,这里陆游的诗结束本节。
纸上得来终觉浅,绝知此事要躬行
下一节我们将开始seata讲述。