一、sentinel部署
1、下载、安装
下载地址:https://github.com/alibaba/Sentinel/releases
下载 Jar 包后,打开终端,运行命令
nohup java -Dserver.port=8180 -Dcsp.sentinel.dashboard.server=localhost:8180 \
-Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.8.jar &
控制台登录:
http://ip:8180/
默认账密:sentinel/sentinel
二、项目中使用
1、gradle引入依赖,选择适合的版本,这里测试用的2.1.3.RELEASE
dependency "com.alibaba.cloud:spring-cloud-starter-alibaba-sentinel:2.1.3.RELEASE"
2、yml文件配置
spring:
application:
name: hicon-study-file
cloud:
sentinel:
transport:
post: 8722 #跟控制台交流的端口,随意指定一个未使用的端口即可
dashboard: 12.0.10.1:8180 #配置Sentinel dashboard地址
这里也支持对feign接口熔断,只需开启feign接口配置,这里不再演示
3、启动类添加:@EnableDiscoveryClient
4、接口入口添加注解: @SentinelResource
例如:
@SentinelResource
@GetMapping("/get")
public Response get(@RequestParam("id") String id){
FileDTO fileDTO = FileAssembler.toDTO(fileApplicationService.get(id));
return Response.ok(fileDTO);
}
此外,
@SentinelResource后面可以设置不同的参数,可以设置熔断后的提示信息等,例如:
接口注解:@SentinelResource(value = “get”, blockHandler = “blockHandlerTestHandler”)
可以用下面的方法做兜底,提示自定义信息
// 接口方法的兜底方法
public String blockHandlerTestHandler(String params, BlockException blockException) {
return "兜底返回";
}
5、控制台
重启自己项目,回到控制台,调用我们项目中的一个接口后,刷新控制台,就会发现hicon-study-file项目,里面会有项目中实时被调取的接口,在这里我们就可以去给想要接口去配置限流 降级 热点 权限的规则。(sentinel懒加载,必须调用我们项目中的一个接口,才能在控制台看到项目)