目前採用 4 層交換機(L4 Switch) 實現讀寫分離與負載均衡:
[Master] ---+---> [Slave1] <-+
| |
+---> [Slave2] <-+---- L4 Switch (Read) --- User Read
| |
+---> [Slave3] <-+
| |
+---> [Slave4] <-+
|
L4 Switch (Write)
|
User Write
rpl_semi_sync_master=ON)降低資料丟失風險SQL_THREAD 停止,資料落後SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
START SLAVE SQL_THREAD;
UUID()、NOW())read_only=ON),誤寫入導致衝突pt-table-checksum、pt-table-sync(Percona Toolkit)檢測與修復不一致 [Slave] -+ +-----------+ +---> [Slave] <-+
[Slave] -+------| L4 Switch |------+---> [Slave] <-+ (Read Pool)
[Master]-+ +-----------+ +---> [Slave] <-+
|| (Virtual IP for Write)
|| +-----------------+
+------ | L4 Switch (VIP) |
+-----------------+
SHOW SLAVE STATUS、Seconds_Behind_Master=0)mysql-monitor、Consul + mysql-exporterOrchestrator、MHA、ProxySQL + Keepalived| 問題 | 短期對策 | 長期演進 |
|---|---|---|
| Master SPOF | 人工切換 SOP、半同步複寫 | MHA/Orchestrator 自動故障轉移、GTID 架構 |
| 寫入瓶頸 | 垂直拆庫、優化慢查詢 | 分庫分表、NewSQL(TiDB/OceanBase)評估 |
| 複寫中斷/不一致 | pt-table-checksum 定期巡檢、read_only=ON | GTID + 半同步、多源複寫、異構同步工具 |
| 多實例耦合 | 監控細粒度化、隔離關鍵業務 | 容器化部署(K8s + Operator)、實例級隔離 |
MySQL 高可用架構演進是系統工程,需結合業務 RPO/RTO、團隊運維能力、基礎設施成熟度綜合規劃。建議以「可觀測性」為起點,逐步引入自動化工具鏈,而非一次性大爆發式重構。