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

相关推荐
砍材农夫2 小时前
threadlocal
后端
神奇小汤圆3 小时前
告别手写HTTP请求!Spring Feign 调用原理深度拆解:从源码到实战,一篇搞懂
后端
布列瑟农的星空3 小时前
前端都能看懂的Rust入门教程(三)——控制流语句
前端·后端·rust
汤姆yu3 小时前
基于springboot的尿毒症健康管理系统
java·spring boot·后端
暮色妖娆丶3 小时前
Spring 源码分析 单例 Bean 的创建过程
spring boot·后端·spring
野犬寒鸦3 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
Java编程爱好者3 小时前
Seata实现分布式事务:大白话全剖析(核心讲透AT模式)
后端
神奇小汤圆3 小时前
比MySQL快800倍的数据库:ClickHouse的性能秘密
后端
小小张说故事4 小时前
BeautifulSoup:Python网页解析的优雅利器
后端·爬虫·python
怒放吧德德4 小时前
后端 Mock 实战:Spring Boot 3 实现入站 & 出站接口模拟
java·后端·设计