springboot框架项目实践应用十二(sentinel控制面板)

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,疯狂刷新,发现不限流了!

相关推荐
movee21 分钟前
十分钟从零开始开发一个自己的MCP server(二)
后端·llm·mcp
就改了30 分钟前
SpringMVC实战——转发和重定向及实际场景
spring boot·转发与重定向
movee31 分钟前
十分钟从零开始开发一个自己的MCP server(一)
后端·llm·mcp
Adellle1 小时前
Java进阶
java·后端·面试
G探险者1 小时前
项目日志是否应该启用文件压缩?
运维·后端
Asthenia04121 小时前
Spring Boot 的自动装配原理:@EnableAutoConfiguration/AutoConfigurationImportSelector/条件
后端
Asthenia04121 小时前
理解 MySQL 的分组机制:GROUP BY、SELECT、HAVING 及索引优化
后端
Asthenia04122 小时前
SQL执行顺序与ON vs WHERE:MySQL底层解析与面试记忆法
后端
Asthenia04122 小时前
操作系统入门:位示图、主存分配、页面置换与磁盘管理
后端
加瓦点灯3 小时前
外观模式(Facade Pattern):复杂系统的“统一入口”
后端