【Spring Cloud Alibaba】Sentinel(一)
- 1. 簡介
- 2. 服務雪崩
1. 簡介
Sentinel 是阿里巴巴開源的分布式系統的流量防護組件,主要用來做流量控制、熔斷降級、系統保護。它的定位類似于 Hystrix,但更側重在 流量治理 上。目前在微服務、服務網關、大型分布式系統中廣泛使用,Spring Cloud Alibaba 體系中也自帶集成。
=======================================================
🌟 Sentinel 的核心功能
1.流量控制(限流)
- 可以針對 QPS(每秒請求數)、并發線程數、調用關系等維度設置閾值。
- 支持 勻速排隊、預熱模式、冷啟動模式 等策略,避免突發流量沖擊。
2.熔斷降級
- 根據 異常比例、異常數、響應時間 等指標,對調用鏈路進行熔斷。
- 熔斷后會在一段時間內快速失敗,避免故障蔓延。
3.系統保護
- 基于 系統整體負載(如 CPU 使用率、RT、線程數) 進行自適應保護。
- 防止因為單個服務請求過多而導致整個系統雪崩。
4.實時監控
- 提供 控制臺,可以實時查看各個服務的限流、熔斷、請求量、響應時間等信息。
====================================================
📚 Sentinel 的工作原理
核心是 對請求進行統計與規則判斷:
- 請求進入時,Sentinel 先判斷是否超出閾值。
- 如果超出,直接攔截(觸發限流/熔斷)。
- 如果沒有超出,就繼續放行。
規則可以在 代碼中硬編碼,也可以通過 動態配置(Nacos、Apollo、ZooKeeper 等) 來下發。
=====================================================
? Sentinel 的優勢
- 輕量級,不依賴重量級框架,接入成本低。
- 功能全面:限流 + 熔斷 + 系統保護 + 實時監控。
- 動態規則:可結合配置中心(Nacos、Apollo 等)。
- 生態完善:已集成 Spring Cloud、Dubbo、gRPC、Spring WebFlux 等主流框架。
2. 服務雪崩
比如一個電商系統是微服務系統,它包含了秒殺商品、商品詳情、購物車、積分等服務,且服務之間也是相互調用的。
如果其中一個服務掛了,比如說秒殺開始了,積分服務因為性能問題,掛了。
后續的話,因為積分服務掛掉了,后續的用戶請求到積分的時候,所有的請求都會積壓到這里,得不到響應。會重復請求導致服務壓力更大。然后后面的請求又會積壓到商品服務,慢慢的商品服務也掛掉了,后面整條鏈路的服務都會掛掉。這就是服務雪崩。
補充:服務掛掉的原因,如激增流量、不穩定服務依賴等等。