首先官方文档 介绍了sentinel是为了让分布式服务之间更稳定
如何接入
1.下载sentinel的管理端jar包
这里下载的是sentinel-dashboard-1.6.3.jar文件,下载地址:https://github.com/alibaba/Sentinel/releases
下载完成后:
在命令行输入如下命令运行Sentinel控制台(此命令在按Ctrl+c 后会停止运行,想让其在后台一直运行,请输入:setsid java -jar sentinel-dashboard-1.6.3.jar):
java -jar sentinel-dashboard-1.6.3.jar
启动过后:
Sentinel控制台默认运行在8080端口上,登录账号密码均为sentinel,通过如下地址可以进行访问:http://localhost:8080
2.在项目中 添加maven配置信息
// sentinel
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
// nacos 服务发现和动态配置
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
3.像平时一样写接口,在controller层或者service层加入注解 @SentinelResource(value = “资源名”)
这里的value不能为空
可以选择在代码中自定义规则,也可以直接在控制台上添加规则
!!!在此请注意: sentinel控制台是懒加载,想要在控制台上看到自己项目,得先请求一下接口,再回到控制台刷新
在控制台上添加:
这里的资源名可以是注解中的value,也可以是访问的url
例如:
@GetMapping("/sentinel/byUrl")
@SentinelResource(value = "byUrl")
public R byUrl() {
return new R("按url限流", 200);
}
用url的话,就在资源名那里填写/sentinel/byUrl