Sentinel: 接入控制檯實時檢視監控資料
Sentinel 提供一個輕量級的開源控制檯,它提供機器發現以及健康情況管理、監控(單機和叢集),規則管理和推送的功能。
比如我們之前是直接在程式碼中初始限流的值,接入控制檯後可以直接通過控制檯進行限流引數的動態配置,非常方便。
Sentinel 控制檯最少應該包含如下功能:
- 檢視機器列表以及健康情況 :收集 Sentinel 客戶端傳送的心跳包,用於判斷機器是否線上。
- 監控 (單機和叢集聚合) :通過 Sentinel 客戶端暴露的監控 API,定期拉取並且聚合應用監控資訊,最終可以實現秒級的實時監控。
- 規則管理和推送 :統一管理推送規則。
- 鑑權 :生產環境中鑑權非常重要。這裡每個開發者需要根據自己的實際情況進行定製。
部署控制檯
需要先下載控制檯的jar包,可以直接從 https://github.com/alibaba/Se... 頁面進行下載,也可以自己下載原始碼進行編譯( https://github.com/alibaba/Se... ),推薦直接下載編譯好的。
下載之後使用下面的命令啟動即可:
java -Dserver.port=8333 -Dcsp.sentinel.dashboard.server=localhost:8333 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.4.2.jar
- -Dserver.port
指定控制檯的埠
- -Dcsp.sentinel.dashboard.server
指定控制檯的地址,相當於自己註冊自己,這樣啟動後就能看到自身的資訊
- -Dproject.name
指定接入的應用名稱
啟動後訪問 http://localhost :8333 即可跳轉到控制檯的主頁,如下圖:
這個控制檯裡面的操作我們就不進行講解了,大家自己去嘗試下就會了,比如說我們要看實時監控的資料,那麼就點選第一個實時監控的選單,可以看到下面的效果:
可以看到每個URI的QPS啊,拒絕的QPS等資訊。
客戶端接入控制檯
上面其實是把控制檯自己接入進來了,如果要接入我們實際工作中的專案,該怎麼接入?
客戶端需要引入 Transport 模組來與 Sentinel 控制檯進行通訊。您可以通過 pom.xml 引入 JAR 包:
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-transport-simple-http</artifactId> <version>1.4.1</version> </dependency>
同樣的增加JVM啟動引數指定控制檯的地址:
-Dcsp.sentinel.dashboard.server=localhost:8333
注:若您的應用為 Spring Boot 或 Spring Cloud 應用,您可以使用 Spring Cloud Alibaba ,通過 Spring 配置檔案來指定配置,詳情請參考 Spring Cloud Alibaba Sentinel 文件 以及 示例 。
這個我們後面再進行講解,目前就直接用JVM引數設定。
Sentinel 會在客戶端首次呼叫的時候進行初始化,開始向控制檯傳送心跳包。然後就可以在控制檯上看到我們自己接入的應用了。
可以看到多了一個應用,因為我們沒有指定應用名,就是預設的啟動類的全稱。
接入之後就可以檢視這個應用的一些資訊了,還可以動態的修改限流的規則:
當然這些規則目前只是儲存在記憶體中,應用重啟之後就丟失了,後面我們再學習如何持久化這些資料。
歡迎加入我的知識星球,一起交流技術,免費學習猿天地的課程( http://cxytiandi.com/course )
PS:目前星球中正在星主的帶領下組隊學習Sentinel,等你哦!