springcloud(9.2)Alibaba-Sentinel 控制台

Dashboard控制台

sentinel-dashboard是一个单独的应用,通过spring-boot进行启动,主要提供一个轻量级的控制台,它提供机器发现、单机资源实时监控、集群资源汇总,以及规则管理的功能。

启动控制台

下载代码并编译控制台

  • 下载 控制台 工程
  • 使用以下命令将代码打包成一个 fat jar: mvn clean package

启动

使用如下命令启动编译后的控制台:

$ java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -jar target/sentinel-dashboard.jar

上述命令中我们指定了一个JVM参数,-Dserver.port=8080 用于指定 Spring Boot 启动端口为 8080

客户端接入控制台

控制台启动后,客户端需要按照以下步骤接入到控制台。

引入客户端jar包

通过 pom.xml 引入 jar 包:


    com.alibaba.csp
    sentinel-transport-simple-http
    x.y.z

配置启动参数

启动时加入 JVM 参数 -Dcsp.sentinel.dashboard.server=consoleIp:port 指定控制台地址和端口。若启动多个应用,则需要通过 -Dcsp.sentinel.api.port=xxxx 指定客户端监控 API 的端口(默认是 8719)。

除了修改 JVM 参数,也可以通过配置文件取得同样的效果。更详细的信息可以参考 启动配置项。

触发客户端初始化

确保客户端有访问量,Sentinel 会在客户端首次调用的时候进行初始化,开始向控制台发送心跳包。

sentinel-dashboard是一个独立的web应用,可以接受客户端的连接,然后与客户端之间进行通讯,他们之间使用http协议进行通讯。他们之间的关系如下图所示:

springcloud(9.2)Alibaba-Sentinel 控制台_第1张图片

 

dashboard

dashboard启动后会等待客户端的连接,具体的做法是在 MachineRegistryController 中有一个 receiveHeartBeat 的方法,客户端发送心跳消息,就是通过http请求这个方法。

dashboard接收到客户端的心跳消息后,会把客户端的传递过来的ip、port等信息封装成一个 MachineInfo 对象,然后将该对象通过 MachineDiscovery 接口的 addMachine 方法添加到一个ConcurrentHashMap中保存起来。

这里会有问题,因为客户端的信息是保存在dashboard的内存中的,所以当dashboard应用重启后,之前已经发送过来的客户端信息都会丢失掉。

 

具体操作:

服务端控制台:

1. 使用idea 从git上下载sentinel完整的项目文件 https://github.com/alibaba/Sentinel.git

2. 使用maven,进行打包

先打包父工程:

springcloud(9.2)Alibaba-Sentinel 控制台_第2张图片

再 控制台 子工程: 

springcloud(9.2)Alibaba-Sentinel 控制台_第3张图片

 

出现下面情况,注意本地maven仓里依赖jar包是否下载完整,确认父工程是否clean-install

 

 

 打好jar后,在jar包所在的文件夹下,打开cmd,使用命令启动jar

springcloud(9.2)Alibaba-Sentinel 控制台_第4张图片

springcloud(9.2)Alibaba-Sentinel 控制台_第5张图片

命令:

java -Dserver.port=8088 -Dcsp.sentinel.dashboard.server=localhost:8088 -jar sentinel-dashboard.jar

其中: 

java -Dserver.port=8084 \      指定端口号
-Dcsp.sentinel.dashboard.server=localhost:8084 \ 外部服务连接sentinel控制台地址
-jar sentinel-dashboard.jar 启动控制台

注意:

从 Sentinel 1.6.0 开始,Sentinel 控制台支持简单的**登录**功能,默认用户名和密码都是 `sentinel`。用户可以通过如下参数进行配置:

- `-Dsentinel.dashboard.auth.username=sentinel` 用于指定控制台的登录用户名为 `sentinel`;
- `-Dsentinel.dashboard.auth.password=123456` 用于指定控制台的登录密码为 `123456`;如果省略这两个参数,默认用户和密码均为 `sentinel`;
- `-Dserver.servlet.session.timeout=7200` 用于指定 Spring Boot 服务端 session 的过期时间,如 `7200` 表示 7200 秒;`60m` 表示 60 分钟,默认为 30 分钟;

也可本地使用idea启动

springcloud(9.2)Alibaba-Sentinel 控制台_第6张图片

springcloud(9.2)Alibaba-Sentinel 控制台_第7张图片

 

客户端配置:

客户端配置是在此基础上添加的:https://blog.csdn.net/lettuce_/article/details/102547930

1. 修改applicatiom.yml,添加下面代码

spring:
  cloud:  #    配置sentinel客户端,注册进控制台里
    sentinel:
      transport:
        dashboard: localhost:8088

2. 启动项目,访问 控制台

springcloud(9.2)Alibaba-Sentinel 控制台_第8张图片

你可能感兴趣的:(springcloud,中间件)