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