How to complete current limiting based on Alibaba Sentinel in the Spring boot project
-
- Run
-
- sentinel-dashboard
- sentinel-sample
- Configuration
-
- sentinel-dashboard
-
- sentinel bootstrap
Run
sentinel-dashboard
用下面的命令启动 sentinel-dashboard
java -Dserver.port=19009 -Dcsp.sentinel.dashboard.server=192.168.1.131:19009 -Dproject.name=sentinel-dashboard -jar asserts/sentinel-dashboard-1.8.1.jar
打开浏览器,输入网址http://192.168.1.131:19009/
,出现sentinel-dashboard登录页,如下图所示
输入用户名sentinel、密码sentinel,进入系统,这个时候会打开sentinel-dashboard页面,默认情况下,界面将会显示sentinel-dashboard自身的相关信息,如下图所示。
sentinel-sample
启动项目sentinel-sample,相关配置参数如下图所示
接下来,我们在IntelliJ IDEA Ultimate中启动项目。
Configuration
项目跑起来以后,接下来,我们一起看一下如何基于sentinel的Web控制台即sentinel-dashboard对项目资源做流量控制的配置。
sentinel-dashboard
我们重新回到sentinel-dashboard可以看到其中多了一个名称为SentinelBootstrap的待监控服务,如下图所示。
sentinel bootstrap
进入SentinelBootstrap服务标签以后,我们看到实例监控页面没有相关的数据,如下图所示,这是因为我们还没有对项目SentinelBootstrap发起请求。
项目启动以后在浏览器中输入网址http://192.168.1.131:19000/api/welcome
就可以看到系统返回’welcome’这样的字符串,如下图所示。
这个时候,我们按F5多刷新几次,然后回到sentinel-dashboard实时监控页面,就会看到有了相关数据,如下图所示。
接下来,我们针对urlhttp://192.168.1.131:19000/api/welcome
设置流控规则。点击“ 簇点链路”标签页,就可以进入 簇点链路页面,如下图所示。
在 簇点链路页面,我们可以看到有一个名称为GET:/welcome
的资源,点击右边的“流控”按钮,系统展示一个新增流控规则对话框,如图所示,这里,我们设置单机阈值为2,点击“新增”按钮新增一条规则,这个时候规则已经生效。
这个时候,我们点击“流控规则”标签切换到流控规则页面,可以看到系统已经为我们增加了一条针对资源GET:/welcome
的流控规则,如下图所示。
我们回到项目sentinel bootstrap中资源GET:/welcome
对应的页面,即http://192.168.1.131:19000/api/welcome
,反复按F5完成刷新,这个时候,就会出现返回字符串Blocked by Sentinel (flow limiting)
的现象,如下图所示。
我们回到sentinel-dashboard实时监控页面,就会看到刚才我们模拟测试资源GET:/welcome
时,sentinel-dashboard为我们监控到的相关数据,如下图所示。