Sentinel: 接入控制台實時查看監控數據


Sentinel 提供一個輕量級的開源控制台,它提供機器發現以及健康情況管理、監控(單機和集群),規則管理和推送的功能。

比如我們之前是直接在代碼中初始限流的值,接入控制台后可以直接通過控制台進行限流參數的動態配置,非常方便。

Sentinel 控制台最少應該包含如下功能:

  • 查看機器列表以及健康情況:收集 Sentinel 客戶端發送的心跳包,用於判斷機器是否在線。
  • 監控 (單機和集群聚合):通過 Sentinel 客戶端暴露的監控 API,定期拉取並且聚合應用監控信息,最終可以實現秒級的實時監控。
  • 規則管理和推送:統一管理推送規則。
  • 鑒權:生產環境中鑒權非常重要。這里每個開發者需要根據自己的實際情況進行定制。

部署控制台

需要先下載控制台的jar包,可以直接從 https://github.com/alibaba/Sentinel/releases 頁面進行下載,也可以自己下載源碼進行編譯(https://github.com/alibaba/Sentinel/tree/master/sentinel-dashboard),推薦直接下載編譯好的。

下載之后使用下面的命令啟動即可:

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,等你哦!

微信掃碼加入猿天地知識星球

猿天地


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM