服務治理定義
服務治理通常是指通過限流、熔斷等手段,保障微服務的可靠運行,即運行時治理。更加寬泛的服務治理還包括微服務持續集成(開源軟件管理、自動化測試等),微服務部署最佳實踐(滾動升級、灰度發布等),微服務可觀測性能力(日志、監控、告警等)構建等。
華為云微服務治理專題主要探討運行時治理。我們首先從常見的故障模式開始。
擴容縮容
在擴容場景下,新啟動的微服務實例需要初始化數據庫連接、初始化緩存等,處理能力一定時間才能夠達到峰值。消費者調用新啟動的微服務實例,也需要新建立網絡連接,這個過程通常是非常消耗CPU并且耗時的操作。在高并發或者高TPS場景下,新啟動的實例處理緩慢,很容易導致調用鏈路雪崩,引起故障。
在縮容場景下,一般會采用優雅停機等策略,將下線的實例先從注冊中心摘除,然后再停止進程,防止正在處理的請求失敗或者消費者將新請求轉發到下線實例。但是現實環境中,優雅停機沒有正確實現的情況非常普遍,下線實例被異常終止沒有執行優雅停機邏輯的情況也非常普遍。
實例不對等
實例不對等通常有很多原因。在資源受限的場景,可能部分實例使用處理能力相對比較弱的資源。在高可用場景,不同的AZ的時延也存在差異。資源不對等場景觸發故障的主要原因是處理能力比較弱的實例會拖慢系統總體的處理能力,需要有合理的機制在實例之間調度請求的執行。
業務邏輯差異
提供者通常存在非常多的業務接口,每個業務接口處理的邏輯不同,這些接口的處理時延也是不一樣的。部分訪問頻率很低的接口,可能非常耗時,甚至觸發故障、內存泄漏等問題。當這些耗時接口被頻繁訪問的時候,會搶占其他接口的處理資源,導致其他接口的處理也變得緩慢。
超出系統處理能力的流量
秒殺、大促和熱點事件等場景,會產生超出系統處理能力的流量,這些流量如果沒有被快速丟棄,就會占用大量的處理資源,并觸發系統處理鏈路的大量超時甚至系統癱瘓。有機器人參與的情況下,資源容易被機器人全部搶走,正常用戶得不到公平合理的處理資源。
審核編輯 黃宇
-
華為云
+關注
關注
3文章
2682瀏覽量
17586
發布評論請先 登錄
相關推薦
評論