華為雲服務治理 | 微服務常見故障模式

IT科技蘇辭發表於2023-01-18

服務治理定義

服務治理通常是指透過限流、熔斷等手段,保障微服務的可靠執行,即執行時治理。更加寬泛的服務治理還包括微服務持續整合(開源軟體管理、自動化測試等),微服務部署最佳實踐(滾動升級、灰度釋出等),微服務可觀測效能力(日誌、監控、告警等)構建等。

華為雲 微服務治理專題主要探討執行時治理。我們首先從常見的故障模式開始。

擴容縮容

 

在擴容場景下,新啟動的微服務例項需要初始化資料庫連線、初始化快取等,處理能力一定時間才能夠達到峰值。消費者呼叫新啟動的微服務例項,也需要新建立網路連線,這個過程通常是非常消耗CPU並且耗時的操作。在高併發或者高TPS場景下,新啟動的例項處理緩慢,很容易導致呼叫鏈路雪崩,引起故障。

在縮容場景下,一般會採用優雅停機等策略,將下線的例項先從註冊中心摘除,然後再停止程式,防止正在處理的請求失敗或者消費者將新請求轉發到下線例項。但是現實環境中,優雅停機沒有正確實現的情況非常普遍,下線例項被異常終止沒有執行優雅停機邏輯的情況也非常普遍。

例項不對等

 

例項不對等通常有很多原因。在資源受限的場景,可能部分例項使用處理能力相對比較弱的資源。在高可用場景,不同的AZ的時延也存在差異。資源不對等場景觸發故障的主要原因是處理能力比較弱的例項會拖慢系統總體的處理能力,需要有合理的機制在例項之間排程請求的執行。

業務邏輯差異

 

提供者通常存在非常多的業務介面,每個業務介面處理的邏輯不同,這些介面的處理時延也是不一樣的。部分訪問頻率很低的介面,可能非常耗時,甚至觸發故障、記憶體洩漏等問題。當這些耗時介面被頻繁訪問的時候,會搶佔其他介面的處理資源,導致其他介面的處理也變得緩慢。

 超出系統處理能力的流量

秒殺、大促和熱點事件等場景,會產生超出系統處理能力的流量,這些流量如果沒有被快速丟棄,就會佔用大量的處理資源,並觸發系統處理鏈路的大量超時甚至系統癱瘓。有機器人參與的情況下,資源容易被機器人全部搶走,正常使用者得不到公平合理的處理資源。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70022886/viewspace-2932659/,如需轉載,請註明出處,否則將追究法律責任。

相關文章