Sentinel是阿里巴巴開源的一款面向分布式服務架構的輕量級流量控制、熔斷降級組件。Sentinel以流量為切入點,從流量控制、熔斷降級、系統負載保護等多個維度來幫助保護服務的穩定性。
官方文檔:https://sentinelguard.io/zh-cn/docs/introduction.html
主要作用
- 實時監控:Sentinel可以實時監控分布式系統的運行情況,包括系統的負載、吞吐量、延遲等關鍵指標,實時了解系統的運行狀態。
- 流量控制:Sentinel可以控制每個服務或接口的并發請求數量,避免因為并發請求過多導致服務崩潰。它可以根據預設的規則對系統的流量進行控制,當系統的流量超出設定的閾值時,可以進行限流操作,保護系統不被過載壓垮。
- 降級處理:當系統出現異常或者負載過高時,Sentinel可以根據預設的降級策略,自動對部分功能進行降級處理,保證系統的核心功能正常運行。這通常涉及對非核心服務進行限流或快速返回處理,以釋放資源保證核心任務的正常運行。
- 熔斷機制:通過熔斷機制,Sentinel可以在系統出現故障或異常時,暫時關閉故障的服務,避免故障的擴散,保證系統的穩定性。這類似于電路中的保險絲,當電流過大時自動熔斷以保護電路。
- 實時報警:Sentinel可以根據預設的規則,對系統的異常情況進行實時報警,及時通知相關人員進行處理,避免問題擴大化。
下載Sentinel(下載前看一下對應版本號)
下載鏈接:https://github.com/alibaba/Sentinel/releases
下載好之后運行登錄:(最好不要用默認端口):啟動命令
java -Dserver.port=8077 -jar sentinel-dashboard-1.8.6.jar
訪問:
在gateway網關服務中引入依賴并添加配置:
隨便請求一個controller就可以看到管理的服務了
我們可以在這里做一些操作控制。可以通過服務id或者api分組進行規則設置,這里是設置限流規則。
測試的話我們可以使用jmeter
下載地址:https://jmeter.apache.org/download_jmeter.cgi