-
引入依赖
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>1.7.1</version> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-annotation-aspectj</artifactId> <version>1.7.1</version> </dependency>
-
限流类中引入
@PostConstruct //(构造器执行后执行) private void initFlowRules(){ List<FlowRule> rules = new ArrayList<>(); FlowRule rule = new FlowRule(); rule.setResource("HelloWorld"); rule.setGrade(RuleConstant.FLOW_GRADE_QPS); // 设置QPS为1(每秒最多访问1次) rule.setCount(1); rules.add(rule); FlowRuleManager.loadRules(rules); }
3.方法限流
@SentinelResource(value = "HelloWorld")
public String helloWorld(String name) {
return "Hello "+name;
}
4.调用
String result=null;
try (Entry entry = SphU.entry("HelloWorld")) {
result =helloWorld("zhangsan");
} catch (BlockException exception) {
exception.printStackTrace();
result="限流生效";
}
return result;