启动 sentinel dashboard
在官网下载 sentinel-dashboard-1.8.1.jar
,并运行
1
| java -Dserver.port=8081 -Dcsp.sentinel.dashboard.server=localhost:8081 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar
|
8081端口是指访问dashboard的端口。
启动以后,可以通过链接 http://localhost:8081
访问到页面,用户名和密码都是 sentinel
。
把项目加入到 dashboard
写一个标准的Springboot项目。
pom.xml文件里面添加如下依赖:
1 2 3 4 5
| <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <version>${sentinel.version}</version> </dependency>
|
在项目的 application.yml
配置文件里面添加如下内容:
1 2 3 4 5
| spring: cloud: sentinel: transport: dashboard: localhost:8081
|
在需要加入限流的业务逻辑里面添加如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| @Service public class UserServiceImpl implements UserService {
@PostConstruct private void initFlowRules() {
List<FlowRule> rules = new ArrayList<>(); FlowRule flowRule = new FlowRule(); flowRule.setResource("UserFlowRule"); flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS); flowRule.setCount(1);
rules.add(flowRule); FlowRuleManager.loadRules(rules); }
@Override @SentinelResource(value = "UserFlowRule", blockHandler = "degradeMethod") public String sayHello(String name) { System.out.println("executed..."); return "hello, " + name; }
public String degradeMethod(String name, BlockException blockException) { return "限流" + blockException.getRule().getResource(); }
}
|