天天看點

可視化限流管理,Sentinel 控制台啟動和接入

Sentinel 的使用可以分為核心庫和控制台兩個部分。

核心庫不依賴任何架構/庫,內建了主流架構,可以進行單機限流降級等功能,

控制台Dashboard提供了可視化的管理限流規則、對叢集進行監控,叢集限流配置設定管理、機器發現等功能。

這篇部落格學習 Sentinel 控制台的啟動和接入。

一、控制台啟動

控制台下載下傳有兩種方式,一種是直接下載下傳編譯好的release版本程式包,另一種是下載下傳控制台的工程代碼,在本地打包後啟動。

直接下載下傳release程式包

release

頁面下載下傳最新版本的控制台 jar 包。

可視化限流管理,Sentinel 控制台啟動和接入

最新的正式版本是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。

可視化限流管理,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,可以檢視控制台。

可視化限流管理,Sentinel 控制台啟動和接入

二、用戶端接入控制台

這裡我使用 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

可視化限流管理,Sentinel 控制台啟動和接入

配置控制台位址:修改Spring配置檔案

這裡我使用的是yaml方式,

可視化限流管理,Sentinel 控制台啟動和接入

完成配置後,啟動應用,重新整理控制台,可在 Sentinel 控制台上看到對應的應用,機器清單頁面可以看到對應的機器,後面教程會對 Sentinel 控制台功能和應用進行詳細的解析