目录

今日说码

点滴记录中国代码进程

X

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

image.png

使用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。

正常启动后,会出现启动成功提示:

image.png

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控制台登录页。

image.png

使用账号密码登录(如果启动时不指定,则账号密码默认均为 sentinel)。

image.png

这里会发现有一个服务为 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

image.png

这里的 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控制台,会发现出现了新的服务。

image.png

在机器列表中会出现 ConsumerFeignApplication 实例的相关信息。

image.png

在实时监控中也会出现我们刚才访问http://localhost:9092/test/hi接口的相关信息。

image.png


目录: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