sentinel-dashboard是一个单独的应用,通过spring-boot进行启动,主要提供一个轻量级的控制台,它提供机器发现、单机资源实时监控、集群资源汇总,以及规则管理的功能。
下载代码并编译控制台
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协议进行通讯。他们之间的关系如下图所示:
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,进行打包
先打包父工程:
再 控制台 子工程:
出现下面情况,注意本地maven仓里依赖jar包是否下载完整,确认父工程是否clean-install
打好jar后,在jar包所在的文件夹下,打开cmd,使用命令启动jar
命令:
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启动
客户端配置是在此基础上添加的:https://blog.csdn.net/lettuce_/article/details/102547930
1. 修改applicatiom.yml,添加下面代码
spring:
cloud: # 配置sentinel客户端,注册进控制台里
sentinel:
transport:
dashboard: localhost:8088
2. 启动项目,访问 控制台