| 維度 | 分散式系統 | 叢集 |
|---|---|---|
| 目標 | 將大任務拆解到多節點並行,提升吞吐/擴展性 | 多節點運行相同服務,提供高可用/負載均衡 |
| 節點角色 | 異構:不同服務、不同資料、不同職責 | 同構:相同代碼、相同資料、相同狀態 |
| 通訊方式 | RPC、Message Queue、HTTP/REST、gRPC | 心跳、狀態同步、虛擬 IP 漂移 |
| 資料一致性 | 最終一致 / 強一致(視業務) | 強一致(共享儲存或同步複寫) |
| 典型例子 | 微服務、MapReduce、分散式資料庫、CDN | Nginx 雙機熱備、MySQL MHA、Kubernetes 控制平面 |
| 類型 | 目標 | 關鍵技術 | 典型場景 |
|---|---|---|---|
| 高可用性 (HA) | 單點故障自動切換,服務不中斷 | Heartbeat, Pacemaker, Keepalived, MHA, Oracle RAC | 資料庫主從切換、關鍵服務雙機熱備 |
| 負載均衡 (LB) | 分散請求到多節點,提升吞吐 | LVS (IPVS), Nginx, HAProxy, AWS ALB, F5 | Web 入口、API Gateway、Service Mesh Ingress |
| 高效能計算 (HPC) | 大規模並行計算 | MPI, Slurm, Kubernetes (Batch/Job), Beowulf | 科學計算、基因測序、金融風險模型、AI 訓練 |
| 網格計算 | 跨組織/異構資源共享 | Globus, BOINC, Kubernetes Federation | 跨機構合作研究、志願計算 |
單體應用 (Monolith)
│
▼
垂直拆分 (模組化單體 / Modulith)
│
▼
微服務 (Microservices) + API Gateway
│
├── 服務內部叢集化 (K8s Deployment + HPA + PDB)
├── 服務間異步解耦 (Kafka / RocketMQ)
├── 統一觀測 (Prometheus + Grafana + Jaeger)
└── Service Mesh (Istio) 可選,視團隊成熟度
分散式解決「規模與業務邊界」,叢集解決「可用性與擴展性」。兩者正交,非互斥。架構師的藝術在於:在正確的時間,用正確的複雜度,解決正確的問題。