好處:實現模塊化、獨立部署、技術異構、高可用、分布式協作,提升系統靈活性和可維護性。
以電商系統為例:
- 用戶下單時,訂單服務通過 OpenFeign 調用庫存服務檢查庫存。
- 訂單服務從 Nacos 獲取庫存服務的實例列表,使用 Ribbon 選擇一個實例。
- 請求通過 HTTP 發送到庫存服務,庫存服務扣減庫存并返回結果。
- 若庫存服務超時,Hystrix 觸發降級,返回默認提示“庫存不足”。
服務熔斷是一種保護機制,當某個微服務調用頻繁失敗或響應過慢時,觸發熔斷器打開,暫時阻止對該服務的后續請求,直接返回預設的錯誤響應 ;
作用:
防止故障擴散:避免因某個服務故障導致調用鏈上的其他服務也受到影響(雪崩效應)。
快速失敗:當服務不可用時,直接返回默認響應,減少客戶端等待時間。
自我恢復:熔斷器會定期嘗試少量請求(半開狀態),若服務恢復則關閉熔斷器,恢復正常調用。工作原理: 熔斷器通常有三種狀態:
關閉:正常狀態,所有請求都嘗試調用目標服務。
打開:如失敗率過高,熔斷器打開,拒絕所有請求,返回默認響應。
半開:經過一段時間,允許少量請求嘗試調用,若成功則關閉熔斷器,否則重新打開。
場景:調用支付服務時,連續多次超時,觸發熔斷器打開,后續請求直接返回“服務不可用”提示,防止進一步調用導致系統過載。
服務降級是指當系統資源緊張或服務不可用時,主動降低服務質量或功能,優先保證核心功能的正常運行,犧牲非核心功能以維持系統整體穩定性;
作用:保障核心功能,提升用戶體驗:通過返回簡化數據或默認響應,避免用戶看到錯誤頁面;
系統穩定性:通過減少資源消耗,防止系統崩潰;
場景:在電商促銷期間,商品詳情頁的推薦服務因流量過高不可用,系統降級為不顯示推薦商品,僅展示商品基本信息。
nacos:提供分布式配置管理、服務注冊與發現,適合動態配置和多環境管理。openFeign+Ribbon:簡化服務調用并提供客戶端負載均衡,適合微服務間通信。
網關:作為統一入口,通過斷言匹配路由規則,通過過濾器處理請求。
?Sentinel:阿里巴巴開源的流量控制和容錯框架,用于微服務架構中的流量治理、熔斷降級和系統保護。
核心功能:流量控制、熔斷降級、熱點限流、系統保護,支持動態規則配置和實時監控。
微服務中的作用:防止服務雪崩、應對流量高峰、提升系統穩定性,簡化容錯開發。
優勢:輕量、靈活、易集成,適合復雜分布式系統。