目录
前言
SpringCloudAlibaba 默认为Sentinel整合RestTemplate、FeignClient,支持灵活配置和限流规则的灵活配置。
一、Sentinel整合SpringCloud?
1.1 基于InitFunc接口进行手动配置:
@SentinelResource(value = "hello",blockHandler = "blockHandlerHello")
@RequestMapping("/say")
public String sayHello(){
return "Hello";
}
public String blockHandlerHello(BlockException e){
return "被限流了";
}
public class FlowRuleInic implements InitFunc {
@Override
public void init() throws Exception {
List<FlowRule> paramFlowRule = new ArrayList<>();
FlowRule flowRule=new FlowRule();
// 资源名称与Spu中的保持一致
flowRule.setResource("hello");
// qps值
flowRule.setCount(2);
// 限流阈值类型:qps
flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);
paramFlowRule.add(flowRule);
FlowRuleManager.loadRules(paramFlowRule);
}
}
基于SPI机制:
1.1 基于DashBoard来进行配置
1.1.1 启动dashboard的jar
1.1.2 配置参数
1.1.3 启动项目调用接口
添加流控的配置: