日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

應用防護規則適用場景

微服務的穩定性一直是您非常關注的話題。隨著業務從單體架構向分布式架構演進以及部署方式的變化,服務之間的依賴關系變得越來越復雜,業務系統也面臨著巨大的高可用挑戰。AHAS應用防護就是一款借助流量控制、熔斷降級等模塊,來提高應用高可用能力的產品。本文介紹各個應用防護規則以及適用的場景。

不穩定場景

在生產環境中您可能遇到過以下不穩定的情況:

  • 大促時瞬間洪峰流量使得系統超出最大負載、Load飆高、系統崩潰導致用戶無法下單。
  • “黑馬”熱點商品擊穿緩存、數據庫被打垮、擠占正常流量。
  • 調用端被不穩定第三方服務拖垮、線程池被占滿、調用堆積,導致整個調用鏈路卡死。
不穩定場景

這些不穩定的場景可能會導致嚴重后果,但很多時候開發者容易忽視這些與流量、依賴相關的高可用防護。AHAS應用防護功能就可以預防這些不穩定因素帶來的影響,針對流量進行高可用的防護,從而保障服務“穩如磐石”。

核心場景

應用防護各規則說明和適用的核心場景如下表所示。

應用防護規則描述核心場景說明文檔
流量控制規則通過AHAS配置QPS模式的流控規則,當每秒的請求量超過設定的閾值時,會自動拒絕多余的請求。適用于需要限制突發的流量,在盡可能處理請求的同時來保障服務不被擊垮的場景。配置流控規則
集群流控規則控制某個服務調用整個集群的實時調用量,解決因流量不均導致總體限流效果不佳的問題。
  • 單機流量不均導致的單機限流效果不佳
  • 集群小流量流控
  • 有業務含義的流量控制(分鐘小時級)
配置集群流控規則
隔離規則控制某些調用的并發數(即正在進行的數目),防止過多的慢調用擠占正常的調用。在調用第三方服務時,防止過多的慢調用擠占正常調用的資源,避免服務不可用。配置隔離規則
熔斷規則對不穩定的弱依賴調用進行自動熔斷降級,暫時切斷不穩定調用,避免局部不穩定因素導致整體的雪崩。避免局部不穩定因素(某個慢調用、異常服務)導致整體的雪崩,例如切斷某個RT高的第三方服務調用,或針對某個ID的慢SQL訪問進行熔斷。配置熔斷規則
熱點防護規則自動識別熱點參數并控制每個熱點值的訪問頻次或并發量,可以有效地防止過“熱”的參數訪問擠占正常的調用資源。適用于針對某些熱點數據中訪問頻次最高的Top數據進行控制的場景,例如針對一段時間內最頻繁購買的商品ID進行控制,防止突發熱點商品擊穿緩存而導致大量請求到數據庫的情形。配置熱點規則
系統自適應保護規則結合系統指標和服務容量,自適應動態調整流量。用作全局的兜底防護規則。自適應流控
自動重試規則在客戶端的部分場景下為系統提供自動重試的能力,同時支持自定義重試策略。適用于服務偶現非致命性異常的場景(如偶現的超時)。配置自動重試規則

流量控制規則

場景說明

流量是隨機、不可預測的,可能就在某一時間會出現流量洪峰,例如雙十一零點的場景。然而系統的容量總是有限的,如果突如其來的流量超過了系統的承受能力,就可能會導致請求處理堆積、堆積的請求處理緩慢、CPU/Load飆高,最后導致系統崩潰。因此,您需要針對這種突發的流量來進行限制,在盡可能處理請求的同時來保障服務不被擊垮,這就是流量控制。流量控制的場景是非常通用的,適用于脈沖流量類等場景。

流控規則說明

通常在Web入口或服務提供方(Service Provider)的場景下,需要保護服務提供方自身不被流量洪峰打垮。此時通常根據服務提供方的服務能力進行流量控制,或針對特定的服務調用方進行限制。您可以結合前期壓測評估核心接口的承受能力,通過AHAS配置QPS模式的流控規則,當每秒的請求量超過設定的閾值時,會自動拒絕多余的請求。關于流控規則的更多信息,請參見配置流控規則。

集群流控規則說明

同時AHAS也提供集群流控(分布式限流)的能力,可以控制某個服務調用整個集群的實時調用量,解決因流量不均導致總體限流效果不佳的問題。關于集群流控的更多信息,請參見配置集群流控規則

如果您的業務符合以下場景,建議結合集群流控來保障服務穩定性:

  • 單機流量不均:由于負載不均衡等原因導致每臺機器的流量不均,此時使用單機流控可能會出現沒有達到請求總量,某些機器就開始限流的情況。
  • 集群小流量流控:某些高可用防護場景下,需要將服務調用QPS限制到很小的量,此時平均到每臺機器的QPS可能小于1,無法通過單機流控進行精確控制。例如限制總QPS為50,但節點數為100個,平均到每個節點QPS為0.5。
  • 有業務含義的流量控制:例如限制某個API每個用戶每分鐘調用不超過10次。

并發控制與熔斷規則

場景說明

一個服務常常會調用別的模塊,可能是另外一個遠程服務、數據庫,或者第三方API等。例如,支付的時候,可能需要遠程調用銀聯提供的API;查詢某個商品的價格,可能需要進行數據庫查詢。然而,這個被依賴服務的穩定性是不能保證的。如果依賴的服務出現了不穩定的情況,請求的響應時間變長,則調用服務的方法的響應時間也會變長,線程會產生堆積,最終可能耗盡業務自身的線程池,服務本身也變得不可用。

微服務的架構示例圖如下:

架構圖.png

現代微服務架構都是分布式的,由許多微服務組成。不同服務之間相互調用,組成復雜的調用鏈路。以上的問題在鏈路調用中會產生放大的效果。復雜鏈路上的某一環不穩定,就可能會層層級聯,最終導致整個鏈路都不可用。

規則說明

AHAS提供以下能力避免慢調用等不穩定因素造成服務不可用:

  • 并發控制:作為一種輕量級隔離的手段,控制某些調用的并發數(即正在進行的數目),防止過多的慢調用擠占正常的調用。更多信息,請參見配置隔離規則
  • 熔斷:對不穩定的弱依賴調用進行自動熔斷降級,暫時切斷不穩定調用,避免局部不穩定因素導致整體的雪崩。更多信息,請參見配置熔斷規則。

    AHAS熔斷規則基于熔斷器模式的思想,在服務出現不穩定因素(例如響應時間變長、錯誤率上升)的時候暫時切斷服務的調用,等待一段時間再進行嘗試。一方面防止給不穩定服務“雪上加霜”,另一方面保護服務的調用方不被拖垮。AHAS應用防護支持兩種熔斷策略:基于響應時間(慢調用比例)和基于錯誤(異常比例),可以有效地針對各種不穩定的場景進行防護。

    說明
    • 熔斷器模式一般適用于弱依賴調用,即降級后不影響業務主流程,開發者需要設計好降級后的回退邏輯(fallback)和返回值。
    • 即使服務調用方引入了熔斷降級機制,開發者還是需要在HTTP或RPC客戶端配置請求超時時間,來做一個兜底的防護。

熱點防護規則

場景說明

為了防止被大流量打垮,您通常會對核心接口配置限流規則,但有的場景下配置普通的流控規則是不夠的。

例如大促峰值的時候,會有不少“熱點”商品,這些熱點商品的瞬時訪問量非常高。通常您可以事先預測一波熱點商品,并對這些商品信息進行緩存“預熱”,以便在出現大量訪問時可以快速返回而不會都經過數據庫。但每次大促都會涌現出一些“黑馬”商品,這些“黑馬”商品是無法事先預測的,沒有被預熱。當這些“黑馬”商品訪問量激增時,大量的請求會擊穿緩存,直接經過數據庫,導致數據庫訪問緩慢,擠占正常商品請求的資源池,最后導致系統崩潰。

規則說明

此時,利用AHAS的熱點參數流控能力,自動識別熱點參數并控制每個熱點值的訪問頻次或并發量,可以有效地防止過“熱”的參數訪問擠占正常的調用資源。更多信息,請參見配置熱點規則

熱點防護1.png

系統自適應保護規則

場景說明

當您無法事先準確評估某個接口的容量,甚至無法預知核心接口的流量特征(如是否有脈沖情況)時,靠事先配置的規則可能無法有效地保護當前服務節點。當某些情況下機器的Load和CPU usage等突然開始飚高,但您卻無法快速確認原因,也來不及處理異常時,您其實需要做的是快速止損,先通過自動化的兜底防護手段,將瀕臨崩潰的微服務“拉”回來。

規則說明

針對這些情況,AHAS提供了一種系統自適應保護規則,結合系統指標和服務容量,自適應動態調整流量。AHAS自適應流控結合系統的Load、CPU使用率以及服務的入口QPS、響應時間和并發量等幾個維度的監控指標,通過一定的流控策略,讓系統的入口流量和系統的負載達到一個平衡,讓系統盡可能運行在最大吞吐量,同時保證系統整體的穩定性。更多信息,請參見自適應流控。

系統規則可以作為整個服務的一個兜底防護策略,保障服務運行,對CPU密集型的場景會有較好的效果。

自動重試規則

場景說明

分布式系統中調用關系通常會比較復雜,服務之間的調用可能會偶爾出現異常。這些異常有的是不可恢復的(如業務錯誤),有的則是可以恢復的(如偶發的超時)。當系統遇到一些非致命性的錯誤(如偶現的超時等)時,可以通過重試的方式來避免系統最終失敗。

規則說明

AHAS的自動重試規則可以在客戶端的部分場景下為系統提供自動重試的能力,同時支持自定義重試策略。更多信息,請參見配置自動重試規則。