華為云服務(wù)治理 | 微服務(wù)常見故障模式
服務(wù)治理定義
服務(wù)治理通常是指通過限流、熔斷等手段,保障微服務(wù)的可靠運行,即運行時治理。更加寬泛的服務(wù)治理還包括微服務(wù)持續(xù)集成(開源軟件管理、自動化測試等),微服務(wù)部署最佳實踐(滾動升級、灰度發(fā)布等),微服務(wù)可觀測性能力(日志、監(jiān)控、告警等)構(gòu)建等。
華為云微服務(wù)治理專題主要探討運行時治理。我們首先從常見的故障模式開始。
擴容縮容
?

在擴容場景下,新啟動的微服務(wù)實例需要初始化數(shù)據(jù)庫連接、初始化緩存等,處理能力一定時間才能夠達到峰值。消費者調(diào)用新啟動的微服務(wù)實例,也需要新建立網(wǎng)絡(luò)連接,這個過程通常是非常消耗CPU并且耗時的操作。在高并發(fā)或者高TPS場景下,新啟動的實例處理緩慢,很容易導(dǎo)致調(diào)用鏈路雪崩,引起故障。
在縮容場景下,一般會采用優(yōu)雅停機等策略,將下線的實例先從注冊中心摘除,然后再停止進程,防止正在處理的請求失敗或者消費者將新請求轉(zhuǎn)發(fā)到下線實例。但是現(xiàn)實環(huán)境中,優(yōu)雅停機沒有正確實現(xiàn)的情況非常普遍,下線實例被異常終止沒有執(zhí)行優(yōu)雅停機邏輯的情況也非常普遍。
實例不對等
?

實例不對等通常有很多原因。在資源受限的場景,可能部分實例使用處理能力相對比較弱的資源。在高可用場景,不同的AZ的時延也存在差異。資源不對等場景觸發(fā)故障的主要原因是處理能力比較弱的實例會拖慢系統(tǒng)總體的處理能力,需要有合理的機制在實例之間調(diào)度請求的執(zhí)行。
業(yè)務(wù)邏輯差異
?

提供者通常存在非常多的業(yè)務(wù)接口,每個業(yè)務(wù)接口處理的邏輯不同,這些接口的處理時延也是不一樣的。部分訪問頻率很低的接口,可能非常耗時,甚至觸發(fā)故障、內(nèi)存泄漏等問題。當這些耗時接口被頻繁訪問的時候,會搶占其他接口的處理資源,導(dǎo)致其他接口的處理也變得緩慢。
?超出系統(tǒng)處理能力的流量

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