方案四:單主寫 + 多從讀 (Active/Active 讀寫分離)
架構拓撲
┌─────────────┐
Write │ Master │ Binlog
────────▶│ (Writer) │──────────┐
└─────────────┘ │
┌──────────────┼──────────────┐
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Slave 1 │ │ Slave 2 │ │ Slave N │
│ (Reader) │ │ (Reader) │ │ (Reader) │
└───────────┘ └───────────┘ └───────────┘
成本結構
- 1 台高性能寫入節點 (高CPU/內存/IOPS)
- N 台讀取節點 (可用商用機型,橫向擴展)
優勢矩陣
| 維度 | 評級 | 說明 |
| 讀高可用 |
⭐⭐⭐ |
任意 Slave 故障不影響讀服務,DNS/LVS 自動剔除 |
| 讀負載均衡 |
⭐⭐⭐ |
應用層/中間件 (ProxySQL/MaxScale) 輪詢/權重分發 |
| 讀擴展性 |
⭐⭐⭐ |
無狀態 Slave 橫向擴展,線性提升讀吞吐 |
| 寫高可用 |
⭐ |
Master 單點故障,需外部 HA (MHA/Orchestrator) 故障切換 |
| 寫擴展性 |
⭐ |
單寫節點瓶頸,垂直擴展天花板低 |
性能基線
- 寫性能 ≈ 單機性能
- 讀性能 ≈ 單機 × N (扣除復制延遲開銷)
適用場景
- 讀多寫少 (典型 8:2 / 9:1)
- 業務可容忍秒級復制延遲 (緩存層吸收)
- 需要讀寫分離中間件 (ProxySQL/MaxScale/Atlas) 支持
方案五:功能分離獨立實例 (Standalone Functionally Separated)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 訂單庫 │ │ 用戶庫 │ │ 日志庫 │
│ (獨立實例) │ │ (獨立實例) │ │ (獨立實例) │
└─────────────┘ └─────────────┘ └─────────────┘
評估結論
| 指標 | 評價 |
| 高可用性 |
無 (單點故障) |
| 負載均衡 |
無 (業務硬編碼路由) |
| 擴展性 |
垂直擴展為主 |
| 運維複雜度 |
高 (多實例獨立管理) |
| 資源利用率 |
低 (峰值錯峰難共享) |
不建議生產核心業務採用,僅適合開發/測試/非核心獨立服務。
綜合對比總結與官方推薦最佳實踐
五大方案能力雷達圖
| 方案 | 高可用 | 負載均衡 | 寫擴展 | 讀擴展 | 成本 | 複雜度 |
| 1. NDB Cluster |
⭐⭐⭐ |
⭐⭐⭐ |
⭐⭐⭐ |
⭐⭐⭐ |
極高 |
極高 |
| 2. GFS/GNBD HA |
⭐⭐ |
⭐ |
⭐ |
⭐⭐ |
高 |
高 |
| 3. DRBD HA |
⭐⭐⭐ |
⭐ |
⭐ |
⭐⭐ |
中高 |
中 |
| 4. Master-Slaves |
⭐ (寫) ⭐⭐⭐ (讀) |
⭐ (寫) ⭐⭐⭐ (讀) |
⭐ |
⭐⭐⭐ |
中 |
低 |
| 5. Standalone |
⭐ |
⭐ |
⭐ |
⭐ |
低 |
低 |
MySQL 官方推薦黃金組合
DRBD (方案三) + Replication (方案四) + Linux Heartbeat/Corosync/Pacemaker
- DRBD 提供存儲層同步鏡像 (Active/Passive),保證數據零丟失 (RPO=0)
- Replication 提供讀擴展與異地災備
- Heartbeat 實現 Master 故障自動切換 (Auto-failover),RTO < 30s
- 組合優勢:兼顧強一致性高可用、讀寫分離擴展、成本可控
架構選型決策樹
IF 寫入極高 + 強一致性 + 預算充足 → NDB Cluster / MySQL Group Replication (MGR)
ELSE IF 讀多寫少 + 可容忍延遲 → Master-Slaves + ProxySQL
ELSE IF 數據零丟失 + 中等寫入 → DRBD HA + Replication
ELSE IF 異地災備需求 → 同城 DRBD + 異地 Binlog/Replication
ELSE → 單機 + 定期備份 + 延遲從庫 (延遲 1h 防誤操作)