Sentinel使用Nacos持久化并动态更新配置
Sentinel注解限流
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-annotation-aspectj</artifactId>
<version>1.8.0</version>
</dependency>
@Configuration
public class SentinelAutoConfiguration {
@Bean
public SentinelResourceAspect sentinelResourceAspect() {
return new SentinelResourceAspect();
}
}
- 对某个接口加上
@SentinelResource
注解
@SentinelResource(value = "hello", blockHandler = "exceptionHandler", fallback = "helloFallback")
@GetMapping("/sentinel")
public String sentinel() {
int i = (int) (Math.random() * 10);
if (i % 2 == 0) {
throw new RuntimeException("偶数异常");
}
return "hello world!!!";
}
public String helloFallback(Throwable throwable) {
throwable.printStackTrace();
return "helloFallback";
}
public String exceptionHandler(BlockException ex) {
ex.printStackTrace();
return "exceptionHandler";
}
}
<