分散式系統的首要架構決策是**中心化**還是**去中心化**。本文推導兩大模型演進邏輯、優劣勢對比,並列舉典型代表系統(MySQL MHA/MGR、MongoDB、ZooKeeper、Cassandra),助你根據一致性、擴展性、運維複雜度做選型。
Client → Center Node → Worker Nodes
Client → L1 Center → L2 Centers → Worker Nodes
Peer-to-Peer / Gossip / Consistent Hashing
每節點自決策、僅與鄰居通訊、無全域中心
| 維度 | 中心化 | 去中心化 |
|---|---|---|
| 決策延遲 | 低(單點決策) | 高(協商/投票) |
| 擴展性 | 受限於中心節點 | 線性水平擴展 |
| 單點風險 | 高(需主備/哨兵) | 無(自動故障轉移) |
| 一致性強度 | 易做強一致 | 多為最終一致 |
| 運維複雜度 | 低(拓撲固定) | 高(成員變更、分區感知) |
| 典型場景 | 主從複制、讀寫分離、傳統分片代理 | 多主叢集、無主系統、大規模 KV/搜尋 |
| 系統 | 模型 | 中心角色 | 備註 |
|---|---|---|---|
| MySQL MHA / MGR | 中心化 | Manager / Primary | MHA 單點 Manager,MGR 組內選主 |
| MongoDB Replica Set | 中心化 | Primary | 單主寫入,自動選主 |
| ZooKeeper / etcd / Consul | 去中心化(共識叢集) | Leader(動態選舉) | Raft/ZAB 協議,強一致配置中心 |
| Cassandra / DynamoDB | 去中心化 | 無 | Gossip 成員管理,一致性 Hash 分片,最終一致 |
| MyCat / ShardingSphere Proxy | 中心化 | Proxy 叢集 | Proxy 無狀態,後端 MySQL 叢集 |
| Vitess | 混合 | VTCtld (拓撲) + Vtgate (Proxy) | 拓撲中心化,查詢路由去中心化 |
沒有最好模型,只有最適合當前階段的模型。**從簡單開始,隨業務演進架構**。