1.sentinel-api: 定义资源,出现异常后累加异常次数
2.sentinel-dashboard: 对上面定义的资源进行限流操作
1.sentinel-api
// 控制器方法
public String test(@RequestParam(required = false) String a){
// 定义sentinel资源名
String resourceName="test-service";
// 模拟设置【来源-微服务】
ContextUtil.enter(resourceName,"member-center");
Entry entry=null;
try {
entry= SphU.entry(resourceName);
if (StringUtils.isBlank(a)){
throw new IllegalArgumentException("参数 a 不能为空");
}
} catch (BlockException e) {
e.printStackTrace();
return "限流,降级了";
} catch (IllegalArgumentException e){
// 增加 IllegalArgumentException 错误次数
Tracer.trace(e);
return e.getMessage();
}finally {
// 释放资源
if (entry!=null){
entry.exit();
}
ContextUtil.exit();
}
return "success";
}
sentinel dashboard操作:
- 浏览器访问一次对应api
- 在 sentinel dashboard 设置对应资源的限制