系統設計 中階
微服務 vs 單體架構:如何做技術選型?
微服務 vs 單體架構
單體架構(Monolith)
所有功能打包在一個可部署單元
優點
- 開發簡單、易 debug(本地執行整個系統)
- 部署簡單(一個二進位檔)
- 跨模組呼叫為函數呼叫,延遲極低
缺點
- 擴展受限(必須整體擴展)
- 模組間易產生隱性耦合
- 大型團隊協作困難
微服務架構
服務按業務能力切分,獨立部署、獨立擴展
優點
- 獨立部署與擴展
- 技術多樣性(各服務可用不同語言)
- 故障隔離
缺點
- 分散式系統複雜度(網路延遲、分散式交易)
- 運維成本高(需要 K8s、Service Mesh、分散式 Tracing)
- 服務間通訊需要設計(API / 事件)
選型建議
| 情境 | 建議 |
|---|---|
| 新創、小團隊、MVP | Monolith(模組化) |
| 系統成長、團隊 > 30人 | 考慮拆分 |
| 各模組擴展需求差異大 | 微服務 |
面試加分:Martin Fowler 建議「Monolith First」——先建好模組化的單體,等邊界清楚了再拆微服務,避免過早優化帶來的高複雜度。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
