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

相关推荐
copyer_xyf8 小时前
Python 异常处理
前端·后端·python
>no problem<8 小时前
基于cola5.0的基础设施层的多数据库切换方案思路
数据库·spring boot·mybatisplus·cola5.0·数据库迁移适配
llz_1129 小时前
web-第三次课后作业
前端·后端·web
心之伊始9 小时前
Java 后端接入大模型:从 Token、并发到推理成本的完整估算方法
java·spring boot·性能优化·大模型·llm
MageGojo11 小时前
天气 API 接入实战:基于 ApiZero 实现实时天气、分钟级降水和 15 天预报查询
java·后端·spring·api 接口接入·接口实战
Dr_eamboat11 小时前
SpringBoot策略模式+工厂模式实战解析
linux·spring boot·策略模式
☆cwlulu11 小时前
Linux系统调用与C库I/O的底层奥秘
java·spring boot·spring
pe7er12 小时前
软件设计不要“既要又要”
前端·后端·架构
柏舟飞流12 小时前
Spring Boot 深入实践指南:从入门到工程化落地
spring boot·后端·firefox
IT_陈寒12 小时前
Java Stream并行流的坑:我花了3小时才找到的线程安全问题
前端·人工智能·后端