AHAS的熔斷規則可以監控應用內部或者下游依賴的響應時間或異常比例,當達到指定的閾值時立即降低下游依賴的優先級。在指定的時間內,系統不會調用該不穩定的資源,避免應用受到影響,從而保障應用高可用性。當指定時間過后,再重新恢復對該資源的調用。
前提條件
已在AHAS應用防護中接入應用,具體操作請參見接入應用方式。
背景信息
除了流量控制以外,對調用鏈路中不穩定的方法或者下游依賴進行熔斷也是重要措施之一。由于調用關系的復雜性,如果調用鏈路中的某一環節出現了錯誤,會導致這個請求失敗,甚至會放大不穩定性,導致整個鏈路無法正常服務。熔斷功能會在調用鏈路中某個方法出現不穩定時(例如某方法出現Timeout或異常比例升高),對這個方法的調用進行限制,讓請求快速失敗,避免此錯誤影響整個鏈路。關于熔斷的相關信息,請參見熔斷結構圖。
熔斷規則配置通常用于弱依賴降級場景,更多信息,請參見弱依賴降級。
功能入口
- 登錄AHAS控制臺。
- 在AHAS控制臺左上角,選擇應用接入的地域。
- 在控制臺左側導航欄中選擇 。
- 在應用防護頁面的應用卡片頁簽單擊目標應用卡片。
- 在左側導航欄單擊應用概覽,然后單擊頁面下方目標接口操作列中的熔斷。
- 在熔斷規則頁簽中配置規則信息。說明 慢調用比例、統計窗口時長、最小請求數目等配置項需要Java SDK版本≥1.6.0或Java Agent版本≥1.7.5。
常用場景1:慢調用熔斷示例
例如調用第三方服務,但響應時間太慢,會影響當前接口,所以對其進行熔斷操作。
在新增熔斷規則或新增規則對話框中配置以下示例規則信息。
參數 | 示例值 | 描述 |
接口名稱 | test | 接口名稱。 |
統計窗口時長 | 1 | 統計時長為1秒。 |
閾值類型 | 慢調用比例 | 選擇以慢調用比例作為閾值。 |
慢調用RT | 1000 | 超過1000 ms則判定為慢請求。 |
降級閾值 | 80% | 觸發熔斷的慢調用比例閾值為80%。 |
熔斷時長 | 10 | 熔斷時長有10秒。 |
最小請求數目 | 10 | 觸發熔斷的最小請求數目為10。 |
熔斷恢復策略 | 單次探測恢復 | 經過熔斷時長后,熔斷器會對接下來的一個請求進行探測,若該請求符合預期(不為慢調用或沒有異常),則結束熔斷;否則重新回到熔斷階段。 |
規則開啟后,在統計時長1秒內,當請求數目大于10,并且慢調用的比例大于80%的時候,則在接下來10秒的熔斷時長內,請求都會快速失敗。經過10秒后熔斷器會進入探測恢復狀態,若接下來的一個請求響應時間小于設置的1000 ms則結束熔斷,若大于1000 ms則會再次被熔斷。
常用場景2:異常熔斷示例
例如第三方內容展示時,系統會出現異常,當異常比例較高時,可以對其進行熔斷操作,以保證更好的用戶體驗。
在新增熔斷規則或新增規則對話框中配置以下示例規則信息。
參數 | 示例值 | 描述 |
接口名稱 | test | 接口名稱。 |
統計窗口時長 | 1 | 統計時長為1秒。 |
閾值類型 | 異常比例 | 選擇以異常比例作為閾值。 |
降級閾值 | 80% | 觸發熔斷的異常比例閾值為80%。 |
熔斷時長 | 10 | 熔斷時長有10秒。 |
最小請求數目 | 10 | 觸發熔斷的最小請求數目為10。 |
熔斷恢復策略 | 單次探測恢復 | 經過熔斷時長后,熔斷器會對接下來的一個請求進行探測,若該請求符合預期(不為慢調用或沒有異常),則結束熔斷;否則重新回到熔斷階段。 |
規則開啟后,在統計時長1秒內,當請求數目大于10,并且異常的比例大于80%的時候,則在接下來10秒的熔斷時長內,請求都會快速失敗。經過10秒后熔斷器會進入探測恢復狀態,若接下來的一個請求沒有異常則結束熔斷,否則會再次熔斷。
更多信息
新增熔斷規則或新增規則對話框的參數說明如下。
參數 | 描述 |
接口名稱 | 適用該規則的應用資源。 |
統計窗口時長 | 統計的時間窗口長度,取值范圍為1秒~120分鐘。 |
最小請求數目 | 觸發熔斷的最小請求數目,若當前統計窗口內的請求數小于此值,即使達到熔斷條件規則也不會觸發。 |
閾值類型 | 選擇以慢調用比例或異常比例作為閾值。
|
熔斷時長 | 即熔斷觸發后持續的時間。資源進入熔斷狀態后,在配置的熔斷時長內,請求都會快速失敗。 |
熔斷恢復策略 | 熔斷器進入恢復階段(半開啟狀態)的恢復策略。
|