Spring Cloud Alibaba 学习笔记(八):熔断器仪表盘监控(Sentinel 控制台)
目录:Spring Cloud Alibaba学习笔记(总) - 今日说码 (96xl.top)
上一篇:Spring Cloud Alibaba学习笔记(七):熔断(Sentinel) - 今日说码 (96xl.top)
下一篇:Spring Cloud Alibaba学习笔记(九):路由网关(Gateway) - 今日说码 (96xl.top)
概述
Sentinel控制台提供一个轻量级的控制台,它提供机器发现、单机资源实时监控、集群资源汇总,以及规则管理的功能。您只需要对应用进行简单的配置,就可以使用这些功能。不过需要注意的是,集群资源汇总仅支持500台以下的应用集群,有大概1-2秒的延时。如果想支持更多的集群,那就需要部署多个Sentinel。
安装
预备环境准备
Sentinel控制台需要在JDK 1.8+的版本上运行。
Windows下载安装
从github下载jar包Releases · alibaba/Sentinel · GitHub。
使用cmd窗口进入jar包保存目录,执行以下命令(jar包名称根据实际下载的文件进行调整):
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.3.jar
java -jar xxx.jar
Sentinel控制台是一个标准的SpringBoot应用,以SpringBoot的方式运行 jar 包即可。-Dserver.port=8080
用于指定项目启动的端口号,如果因为端口号冲突而导致启动失败,可以把修改为其他端口号。-Dcsp.sentinel.dashboard.server=localhost:8080
用于指定控制台地址和端口,指定控制台后客户端会自动向该地址发送心跳包。这个配置是用在客户端,这里启动命令使用了该配置,意味着Sentinel控制台也用于自己监控自己程序的api,否则无法显示控制台的api情况,当然这个也可以根据情况不显示。-Dproject.name=sentinel-dashboard
指定程序的名称,这里启动时配置了Sentinel控制台自己监控自己,所以指定了名称。-Dsentinel.dashboard.auth.username=sentinel
用于指定控制台的登录用户名。-Dsentinel.dashboard.auth.password=123456
用于指定控制台的登录密码。如果省略这两个参数,默认用户和密码均为sentinel
。-Dserver.servlet.session.timeout=7200
用于指定 Spring Boot 服务端 session 的过期时间,如7200
表示 7200 秒;60m
表示 60 分钟,默认为 30 分钟。-Dcsp.sentinel.api.port=8719
客户端提供给Dashboard访问或者查看Sentinel的运行访问的端口号,默认8719。
正常启动后,会出现启动成功提示:
Linux下载安装
jar包可使用从github下载的jar包Releases · alibaba/Sentinel · GitHub手动上传至linux系统下,也可以使用以下git命令进行拉取:
#下载源码
git clone https://github.com/alibaba/Sentinel.git
#编译打包
mvn clean package
启动命令与windows下一致。
访问服务
然后访问http://localhost:8080/#/dashboard/home,这个地址就是启动时 Dcsp.sentinel.dashboard.server
参数指定的地址。进入Sentinel控制台登录页。
使用账号密码登录(如果启动时不指定,则账号密码默认均为 sentinel
)。
这里会发现有一个服务为 sentinel-dashboard
,这个就是控制台启动时使用 -Dcsp.sentinel.dashboard.server
和 -Dproject.name
参数指定的控制台自己监控自己出现的相关信息。
修改配置
修改 spring-cloud-alibaba-nacos-consumer-feign
子模块的 application.yml
配置文件,添加以下配置:
spring:
cloud:
sentinel:
transport:
port: 8720
dashboard: localhost:8080
这里的 spring.cloud.sentinel.transport.port
端口配置会在应用对应的机器上启动一个 Http Server,该 Server 会与 Sentinel 控制台做交互。比如 Sentinel 控制台添加了 1 个限流规则,会把规则数据 push 给这个 Http Server 接收,Http Server 再将规则注册到 Sentinel 中。
这个端口号配置与上面启动Sentinel控制台时指定的 -Dcsp.sentinel.dashboard.server
端口参数效果相同,这里指定了端口号为 8720
,因为默认的 8719
已经被控制台自己占用了。如果端口号重复了或者不指定该端口号配置的话也能注册成功,Sentinel控制台会使用默认的 8719
端口号,如果端口号已被占用,会自动+1,直到出现没有被使用的端口号。
测试控制台
修改 application.yml
配置文件后,重启 ConsumerFeignApplication
实例,等待出现 Started ConsumerFeignApplication in 6.826 seconds (JVM running for 7.779)
启动成功的提示后,访问http://localhost:8080/#/dashboard/home,这时会发现列表上还是只有 sentinel-dashboard
一个服务,并没有出现新的服务。这并不是因为有问题注册失败了,其实已经注册上了,只是没有显示而已,需要调用一次该服务后相关信息才会显示在Sentinel控制台上。
浏览器访问http://localhost:9092/test/hi,然后刷新Sentinel控制台,会发现出现了新的服务。
在机器列表中会出现 ConsumerFeignApplication
实例的相关信息。
在实时监控中也会出现我们刚才访问http://localhost:9092/test/hi接口的相关信息。
目录:Spring Cloud Alibaba 学习笔记(总) - 今日说码 (96xl.top)
上一篇:Spring Cloud Alibaba 学习笔记(七):熔断(Sentinel) - 今日说码 (96xl.top)
下一篇:Spring Cloud Alibaba 学习笔记(九):路由网关(Gateway) - 今日说码 (96xl.top)
标题:Spring Cloud Alibaba 学习笔记(八):熔断器仪表盘监控(Sentinel 控制台)
作者:96XL
地址:https://solo.96xl.top/articles/2022/02/11/1644569959775.html