1.引言
sentinel不单提供了丰富、灵活的各种规则:流控、降级、热点、系统、授权,还提供了可视化的控制面板dashboard,通过控制面板可以实现
- 规则实时配置、动态刷新
- 资源监控
下面我们来搭建一个sentinel控制面板,它其实是一个基于springboot的应用,因此搭建起来非常简单!
2.下载sentinel dashboard
访问地址:github.com/alibaba/Sen... dashboard项目。
我下载的是整个sentinel项目,访问地址:github.com/alibaba/Sen...
找到sentinel-dashboard,进入目录,执行命令
shell
mvn clean package
即可打包sentinel-dashboard
3.启动sentinel dashboard
打开控制台窗口,执行以下命令启动控制面板
shell
java -Dserver.port=8858 -Dcsp.sentinel.dashboard.server=localhost:8858 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
启动完成,访问地址:http://127.0.0.1:8858/,输入默认的sentinel账号:sentinel/sentinel,即可进入控制面板
成功登陆后主界面
4.应用接入sentinel dashboard
登录sentinel dashboard控制面板,看到左边菜单展现应用,应用下有相应的规则子菜单:实时监控、簇点链路、流控规则、熔断规则、热点规则、系统规则、授权规则、集群流控、机器列表。
通过该控制面板,我们可以给每个应用实时配置规则,实现动态刷新。那么关键是如何把应用接入进来呢?非常简单。
4.1.引入依赖
sentinel提供了sentinel-transport-simple-http模块,负责应用与控制面板之间的通信
xml
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>1.8.2</version>
</dependency>
4.2.设置启动应用参数
应用接入sentinel dashboard控制面板,需要在启动时,设置相应的jvm参数
- 指定控制面板server地址
- 以及本地应用通过监听哪个端口,来实现与sentinel dashboard通信
shell
-Dcsp.sentinel.dashboard.server=127.0.0.1:8858 -Dcsp.sentinel.api.port=8719
比如我在idea启动项目时,进行了设置
4.3.启动应用,查看控制面板
注意:应用与sentinel dashboard之间是懒加载,启动应用后,需要访问应用,才能在控制面板看到应用的信息。访问地址:http://127.0.0.1:8080/sentinel/degrade?userId=1
刷新控制面板,看到应用已经加载到sentinel dashboard
点击流控规则
点击熔断规则
可以看到应用中,初始加载的流控规则、熔断规则已经在控制面板中展示
5.动态刷新规则
我们前面说过,通过sentinel控制面板,可以实现规则的配置、动态刷新规则、以及监控。来试一下
5.1.查看流控规则
可以看到,这正是我们在应用中初始化加载的规则,此时配置的阈值是1,即每秒中超过1次请求,会发生流控。
5.2.修改流控规则
将流控规则,阈值调整为:100,表示每秒钟中允许通过100个请求,超过100才会流控。
然后再次访问:http://127.0.0.1:8080/sentinel/flow?userId=1,疯狂刷新,发现不限流了!