Alibaba Sentinel 是一款高性能且輕量級的流量控制、熔斷降級解決方案,是面向分布式服務架構的高可用流量控制組件,
Sentinel 官網:https://sentinelguard.io/zh-cn/
Github:https://github.com/alibaba/Sentinel
一、Sentinel 是什么
隨著微服務的流行,服務和服務之間的穩定性變得越來越重要,Sentinel 主要以流量為切入點,從流量控制、熔斷降級、系統自適應保護等多個維度來保障微服務的穩定性,
Sentinel 具有以下特征:
- 「豐富的應用場景」:
Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺(即突發流量控制在系統容量可以承受的范圍)、訊息削峰填谷、集群流量控制、實時熔斷下游不可用應用等,
- 「完備的實時監控」:
Sentinel 同時提供實時的監控功能,您可以在控制臺中看到接入應用的單臺機器秒級資料,甚至 500 臺以下規模的集群的匯總運行情況,
- 「廣泛的開源生態」:
Sentinel 提供開箱即用的與其它開源框架/庫的整合模塊,例如與 Spring Cloud、Dubbo、gRPC 的整合,您只需要引入相應的依賴并進行簡單的配置即可快速地接入 Sentinel,
- 「完善的 SPI 擴展點」:
Sentinel 提供簡單易用、完善的 SPI 擴展介面,您可以通過實作擴展介面來快速地定制邏輯,例如定制規則管理、適配動態資料源等,
- 「Sentinel 主要特征」

- 「Sentinel 開源生態」

Sentinel 目前已經針對 Servlet、Dubbo、Spring Boot/Spring Cloud、gRPC 等進行了適配,用戶只需引入相應依賴并進行簡單配置即可非常方便地享受 Sentinel 的高可用流量防護能力,Sentinel 還為 Service Mesh 提供了集群流量防護的能力,未來 Sentinel 還會對更多常用框架進行適配,
Sentinel 分為兩個部分:
核心庫(Java 客戶端)不依賴任何框架/庫,能夠運行于所有 Java 運行時環境,同時對 Dubbo / Spring Cloud 等框架也有較好的支持,
控制臺(Dashboard)基于 Spring Boot 開發,打包后可以直接運行,不需要額外的 Tomcat 等應用容器,
二、Sentinel 的歷史
2012 年,Sentinel 誕生,主要功能為入口流量控制,
2013-2017 年,Sentinel 在阿里巴巴集團內部迅速發展,成為基礎技術模塊,覆寫了所有的核心場景,Sentinel 也因此積累了大量的流量歸整場景以及生產實踐,
2018 年,Sentinel 開源,并持續演進,
2019 年,Sentinel 朝著多語言擴展的方向不斷探索,推出 C++ 原生版本,同時針對 Service Mesh 場景也推出了 Envoy 集群流量控制支持,以解決 Service Mesh 架構下多語言限流的問題,
2020 年,推出 Sentinel Go 版本,繼續朝著云原生方向演進,
三、Sentinel 核心
Sentinel 的使用可以分為兩個部分:
核心庫(Java 客戶端):不依賴任何框架/庫,能夠運行于 Java 7 及以上的版本的運行時環境,同時對 Dubbo / Spring Cloud 等框架也有較好的支持(見 主流框架適配),
控制臺(Dashboard):控制臺主要負責管理推送規則、監控、集群限流分配管理、機器發現等,
四、Sentinel 控制臺
Sentinel 提供一個輕量級的開源控制臺,它提供機器發現以及健康情況管理、監控(單機和集群),規則管理和推送的功能,
官網檔案:https://github.com/alibaba/Sentinel/wiki/控制臺
4.1 獲取控制臺
您可以從 release 頁面 下載最新版本的控制臺 jar 包,
您也可以從最新版本的原始碼自行構建 Sentinel 控制臺:
下載 控制臺 工程
使用以下命令將代碼打包成一個 fat jar: mvn clean package
4.2 啟動控制臺
啟動命令如下,本文使用的是目前最新 1.7.2 版本:
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.2.jar
- 「注意」:啟動 Sentinel 控制臺需要 JDK 版本為 1.8 及以上版本,
其中 -Dserver.port=8080 用于指定 Sentinel 控制臺埠為 8080,
從 Sentinel 1.6.0 起,Sentinel 控制臺引入基本的「登錄」功能,默認用戶名和密碼都是 sentinel,可以參考 鑒權模塊檔案 配置用戶名和密碼,
注:若您的應用為 Spring Boot 或 Spring Cloud 應用,您可以通過 Spring 組態檔來指定配置,詳情請參考 Spring Cloud Alibaba Sentinel 檔案,
為了方便啟動,可以撰寫一個啟動腳本 run.bat:
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.2.jar
pause
4.3 訪問
訪問:http://localhost:8080/

輸入默認用戶名和密碼 sentinel 點擊登錄,至此控制臺就安裝完成了,

原作者:哈嘍沃德先生,請關注 哈嘍沃德先生公眾號,如要獲取**springcloud alibaba微服務架構視頻教程**,請點加粗部分文字,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/114386.html
標籤:Java
上一篇:花了14天做了一張spring腦圖,所有spring知識點都匯總了!2020最新Spring全家桶高頻面試題
下一篇:JDBC(3)-資料庫事務
