可视化限流管理,Sentinel 控制台启动和接入

时间:2024-01-26 08:04:59

Sentinel 的使用可以分为核心库和控制台两个部分。
核心库不依赖任何框架/库,集成了主流框架,可以进行单机限流降级等功能,
控制台Dashboard提供了可视化的管理限流规则、对集群进行监控,集群限流分配管理、机器发现等功能。

这篇博客学习 Sentinel 控制台的启动和接入。

一、控制台启动

控制台下载有两种方式,一种是直接下载编译好的release版本程序包,另一种是下载控制台的工程代码,在本地打包后启动。

直接下载release程序包

release 页面下载最新版本的控制台 jar 包。

最新的正式版本是v1.7.1。

通过代码构建

下载最新的 sentinel-dashboard 控制台工程,代码仓库地址 sentinel-dashboard

下载后,进入工程目录,通过Maven打包成一个可执行的 fat jar:

mvn clean package

构建和启动

使用如下命令启动控制台:

java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

注意:启动 Sentinel 控制台需要 JDK 版本为 1.8 及以上版本。

其中,

-Dserver.port=8080 用于指定 Sentinel 控制台端口为 8080
-Dcsp.sentinel.dashboard.server 用于控制台对外暴露的服务地址

配置用户名和密码

从 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 分钟;

查看控制台

控制台启动后,访问 localhost:8080,可以查看控制台。

二、客户端接入控制台

这里我使用 spring.io 创建一个Spring Boot项目来进行演示,工程搭建步骤可以参考
十分钟快速创建 Spring Cloud 项目

引入依赖

客户端需要引入 Transport 模块来与 Sentinel 控制台进行通信。需要在 pom.xml 引入 JAR 包:

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-transport-simple-http</artifactId>
    <version>1.7.1</version>
</dependency>

引入依赖后,在应用启动时需要添加,指定控制台地址和端口,可以通过添加启动JVM参数
或者配置文件两种方式。

配置控制台地址:添加JVM启动参数

启动时加入 JVM 参数 -Dcsp.sentinel.dashboard.server=consoleIp:port。
默认端口是8719,这里我把启动参数添加在Idea Configuration下的VM options中:
-Dcsp.sentinel.dashboard.server=192.168.43.120:8719

配置控制台地址:修改Spring配置文件

这里我使用的是yaml方式,

查看控制台

完成配置后,启动应用,刷新控制台,可在 Sentinel 控制台上看到对应的应用,机器列表页面可以看到对应的机器,后面教程会对 Sentinel 控制台功能和应用进行详细的解析

参考

Sentinel官方文档