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

相关推荐
用户685453759776943 分钟前
同步成本换并行度:多线程、协程、分片、MapReduce 怎么选才不踩坑
后端
javaTodo1 小时前
Claude Code 记忆机制详解:从 CLAUDE.md 到 Auto Memory,六层体系全拆解
后端
LSTM971 小时前
使用 C# 和 Spire.PDF 从 HTML 模板生成 PDF 的实用指南
后端
JaguarJack1 小时前
为什么 PHP 闭包要加 static?
后端·php·服务端
BingoGo2 小时前
为什么 PHP 闭包要加 static?
后端
是糖糖啊2 小时前
OpenClaw 从零到一实战指南(飞书接入)
前端·人工智能·后端
百度Geek说2 小时前
基于Spark的配置化离线反作弊系统
后端
Java编程爱好者2 小时前
虚拟线程深度解析:轻量并发编程的未来趋势
后端
苏三说技术3 小时前
Spring AI 和 LangChain4j ,哪个更好?
后端