資料介紹
軟件簡介
Sentinel 是面向分布式服務架構的高可用流量防護組件,主要以流量為切入點,從限流、流量整形、熔斷降級、系統負載保護、熱點防護等多個維度來幫助開發者保障微服務的穩定性。
Sentinel 具有以下特性:
- 豐富的應用場景:Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺(即突發流量控制在系統容量可以承受的范圍)、消息削峰填谷、集群流量控制、實時熔斷下游不可用應用等。
- 完備的實時監控:Sentinel 同時提供實時的監控功能。您可以在控制臺中看到接入應用的單臺機器秒級數據,甚至 500 臺以下規模的集群的匯總運行情況。
- 廣泛的開源生態:Sentinel 提供開箱即用的與其它開源框架/庫的整合模塊,例如與 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相應的依賴并進行簡單的配置即可快速地接入 Sentinel。
- 完善的 SPI 擴展點:Sentinel 提供簡單易用、完善的 SPI 擴展接口。您可以通過實現擴展接口來快速地定制邏輯。例如定制規則管理、適配動態數據源等。
Sentinel 的開源生態:
?
Sentinel 的歷史
- 2012 年,Sentinel 誕生,主要功能為入口流量控制。
- 2013-2017 年,Sentinel 在阿里巴巴集團內部迅速發展,成為基礎技術模塊,覆蓋了所有的核心場景。Sentinel 也因此積累了大量的流量歸整場景以及生產實踐。
- 2018 年,Sentinel 開源,并持續演進。
- 2019 年,Sentinel 朝著多語言擴展的方向不斷探索,推出?C++ 原生版本,同時針對 Service Mesh 場景也推出了?Envoy 集群流量控制支持,以解決 Service Mesh 架構下多語言限流的問題。
- 2020 年,推出?Sentinel Go 版本,繼續朝著云原生方向演進。
Sentinel 基本概念
資源
資源是 Sentinel 的關鍵概念。它可以是 Java 應用程序中的任何內容,例如,由應用程序提供的服務,或由應用程序調用的其它應用提供的服務,甚至可以是一段代碼。在接下來的文檔中,我們都會用資源來描述代碼塊。
只要通過 Sentinel API 定義的代碼,就是資源,能夠被 Sentinel 保護起來。大部分情況下,可以使用方法簽名,URL,甚至服務名稱作為資源名來標示資源。
規則
圍繞資源的實時狀態設定的規則,可以包括流量控制規則、熔斷降級規則以及系統保護規則。所有規則可以動態實時調整。
Sentinel 功能和設計理念
流量控制
什么是流量控制
流量控制在網絡傳輸中是一個常用的概念,它用于調整網絡包的發送數據。然而,從系統穩定性角度考慮,在處理請求的速度上,也有非常多的講究。任意時間到來的請求往往是隨機不可控的,而系統的處理能力是有限的。我們需要根據系統的處理能力對流量進行控制。Sentinel 作為一個調配器,可以根據需要把隨機的請求調整成合適的形狀,如下圖所示:
流量控制設計理念
流量控制有以下幾個角度:
-
資源的調用關系,例如資源的調用鏈路,資源和資源之間的關系;
-
運行指標,例如 QPS、線程池、系統負載等;
-
控制的效果,例如直接限流、冷啟動、排隊等。
Sentinel 的設計理念是讓您自由選擇控制的角度,并進行靈活組合,從而達到想要的效果。
熔斷降級
什么是熔斷降級
除了流量控制以外,及時對調用鏈路中的不穩定因素進行熔斷也是 Sentinel 的使命之一。由于調用關系的復雜性,如果調用鏈路中的某個資源出現了不穩定,可能會導致請求發生堆積,進而導致級聯錯誤。
Sentinel 和 Hystrix 的原則是一致的: 當檢測到調用鏈路中某個資源出現不穩定的表現,例如請求響應時間長或異常比例升高的時候,則對這個資源的調用進行限制,讓請求快速失敗,避免影響到其它的資源而導致級聯故障。
熔斷降級設計理念
在限制的手段上,Sentinel 和 Hystrix 采取了完全不一樣的方法。
Hystrix 通過?線程池隔離?的方式,來對依賴(在 Sentinel 的概念中對應?資源)進行了隔離。這樣做的好處是資源和資源之間做到了最徹底的隔離。缺點是除了增加了線程切換的成本(過多的線程池導致線程數目過多),還需要預先給各個資源做線程池大小的分配,并且對于一些使用了 ThreadLocal 的場景來說會有問題(如 Spring 事務)。
Sentinel 對這個問題采取了兩種手段:
-
通過并發線程數進行限制
和資源池隔離的方法不同,Sentinel 通過限制資源并發線程的數量,來減少不穩定資源對其它資源的影響。這樣不但沒有線程切換的損耗,也不需要您預先分配線程池的大小。當某個資源出現不穩定的情況下,例如響應時間變長,對資源的直接影響就是會造成線程數的逐步堆積。當線程數在特定資源上堆積到一定的數量之后,對該資源的新請求就會被拒絕。堆積的線程完成任務后才開始繼續接收請求。
-
針對慢調用和異常對資源進行降級
除了對并發線程數進行控制以外,Sentinel 還可以根據響應時間和異常等不穩定因素來快速對不穩定的調用進行熔斷。當依賴的資源出現響應時間過長后,所有對該資源的訪問都會被直接拒絕,直到過了指定的時間窗口之后才重新漸進式地恢復。
系統自適應保護
Sentinel 同時提供系統維度的自適應保護能力。防止雪崩,是系統防護中重要的一環。當系統負載較高的時候,如果還持續讓請求進入,可能會導致系統崩潰,無法響應。在集群環境下,網絡負載均衡會把本應這臺機器承載的流量轉發到其它的機器上去。如果這個時候其它的機器也處在一個邊緣狀態的時候,這個增加的流量就會導致這臺機器也崩潰,最后導致整個集群不可用。
針對這個情況,Sentinel 提供了對應的保護機制,讓系統的入口流量和系統的負載達到一個平衡,保證系統在能力范圍之內處理最多的請求。
Sentinel 是如何工作的
Sentinel 的主要工作機制如下:
-
對主流框架提供適配或者顯示的 API,來定義需要保護的資源,并提供設施對資源進行實時統計和調用鏈路分析。
-
根據預設的規則,結合對資源的實時統計信息,對流量進行控制。同時,Sentinel 提供開放的接口,方便您定義及改變規則。
-
Sentinel 提供實時的監控系統,方便您快速了解目前系統的狀態。
- ChatGPT:AI模型框架研究 9次下載
- 惡意代碼動態流量偽裝框架StealthyFlow綜述 11次下載
- 擬態通用運行環境的資源管理調度及框架 6次下載
- SIMATIC高可用性系統S7-400H系統手冊 22次下載
- VxSCADA組態管理軟件使用手冊電子版 0次下載
- 一種基于框架特征的共指消解方法 7次下載
- 基于包簇映射的資源管理框架 0次下載
- 基于SSH框架的圖書管理應用框架研究張敏 0次下載
- 基于Struts框架的科技管理系統的設計 0次下載
- 用簡化方法對高可用性系統中的電源進行數字化管理
- 網絡流量監測和管理平臺的設計與實現
- 基于.Net框架的設備管理系統的設計與實現
- 基于Struts框架構建績效考核管理系統
- 在高可用性系統中以簡化方法數字地管理電源
- 基于EVMS和SNMP的存儲管理框架
- 圓齒輪流量計怎么使用? 424次閱讀
- 無線通信模塊管理框架RIL簡介 2105次閱讀
- 基于Sentinel實現歷史監控數據回看 985次閱讀
- 搭建Keepalived+Lvs+Nginx高可用集群負載均衡 3085次閱讀
- 一款擴展性高的滲透測試框架滲透測試框架 594次閱讀
- 如何搭建高可用集群 615次閱讀
- 限流、熔斷、高可用的思路與方法解析 754次閱讀
- 基于SSM框架的新聞管理系統 1385次閱讀
- 基于SSM框架的酒店后臺管理系統 1012次閱讀
- Nginx高可用方案 551次閱讀
- 一個高可用的接口是該考慮哪些內容 670次閱讀
- 解析keepalived+nginx實現高可用方案技術 3793次閱讀
- 高可用性(HA)和嵌入式管理中間件:Enea Element詳解 3959次閱讀
- Eureka的集群搭建方法-保證高可用 7562次閱讀
- 統一流量管理平臺的多種流量采集技術分析 1448次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論