🌧️ 容錯設計
微服務 VS 單體服務
單體服務
一發生錯誤,就全部服務故障
微服務
- 每個服務都跑在獨立的 Process
- 一個服務故障後,其他服務不會受影響
微服務設計錯誤有可能會造成,某個服務故障,導致其他依賴它的服務逐漸癱瘓,
造成故障蔓延,最後導致所有系統癱瘓。
因此在微服務的設計中,應該要可以快速檢測故障的原因,並且自動復歸
微服務的設計演進
微服務架構特點
需要考慮多方面的設計和成本,對於缺乏經驗的團隊來說,實施完美的微服務架構可能比單體應用更費代價
漸進式構建
許多情況下,架構師會選擇以漸進的方式建構系統
初期可能採用單體系統設計和實施,因為系統初期較小,成本相對較低,且核心業務通常不會有大改變
微服務轉換
隨著系統成長和業務需求,架構師會將容易變動或具有時間效應的部分逐步轉換為微服務,進行分散處理,
同時會逐步拆分單體系統中多變的模塊
核心微服務
不易變動的模塊會形成核心微服務,穩定存在於整個架構中,這有助於保持穩定的基礎架構,並支援系統的穩定運作