高可用是企業(yè)級數(shù)據(jù)庫的核心要求。TDengine通過多副本、自動故障轉(zhuǎn)移等機(jī)制保障服務(wù)連續(xù)性。
一、高可用架構(gòu)
1.1 架構(gòu)組件
┌─────────────────────────────────────────────────────┐
│ 負(fù)載均衡器 │
│ (Nginx/HAProxy) │
└──────────────────┬──────────────────────────────────┘
│
┌─────────┼─────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ taosd │ │ taosd │ │ taosd │
│ Node1 │ │ Node2 │ │ Node3 │
└────────┘ └────────┘ └────────┘
│ │ │
└─────────┼─────────┘
│
┌────┴────┐
│ 存儲層 │
│ (多副本) │
└─────────┘
1.2 副本策略
-- 創(chuàng)建三副本數(shù)據(jù)庫
CREATE DATABASE demo REPLICA 3 VGROUPS 10;
-- 查看副本狀態(tài)
SHOW VNODES;
二、多副本機(jī)制
2.1 副本類型
| 副本類型 | 說明 | 適用場景 |
|---|---|---|
| 強(qiáng)同步 | 所有副本寫入成功才返回 | 核心業(yè)務(wù) |
| 弱同步 | 主副本寫入即可返回 | 性能優(yōu)先 |
| 異步 | 主副本寫入即返回 | 日志類數(shù)據(jù) |
2.2 Leader選舉
TDengine采用Raft協(xié)議進(jìn)行Leader選舉:
- 自動選舉新Leader
- 數(shù)據(jù)自動同步
- 對應(yīng)用透明
三、自動故障轉(zhuǎn)移
3.1 故障檢測
-- 查看節(jié)點狀態(tài)
SHOW DNODES;
-- 節(jié)點狀態(tài)
-- offline - 離線
-- online - 在線
-- syncing - 同步中
3.2 故障恢復(fù)流程
1. 檢測節(jié)點故障 (3秒)
2. 標(biāo)記節(jié)點為offline
3. 自動選舉新Leader
4. 數(shù)據(jù)同步到新節(jié)點
5. 恢復(fù)服務(wù)
3.3 恢復(fù)時間目標(biāo)
| 場景 | RTO | RPO |
|---|---|---|
| 單節(jié)點故障 | <30秒 | 0 |
| 網(wǎng)絡(luò)分區(qū) | <1分鐘 | <1分鐘 |
四、負(fù)載均衡
4.1 Vgroup負(fù)載均衡
-- 觸發(fā)均衡
BALANCE VGROUP;
-- 查看均衡狀態(tài)
SHOW CLUSTER;
4.2 寫入負(fù)載分配
負(fù)載均衡器自動分配寫入請求:
- 輪詢策略
- 最少連接策略
- IP哈希策略
五、網(wǎng)絡(luò)配置
5.1 網(wǎng)絡(luò)隔離
建議使用獨立網(wǎng)絡(luò):
- 集群內(nèi)部通信網(wǎng)絡(luò)
- 客戶端接入網(wǎng)絡(luò)
- 存儲網(wǎng)絡(luò)(分布式存儲)
5.2 網(wǎng)絡(luò)質(zhì)量要求
| 指標(biāo) | 要求 |
|---|---|
| 帶寬 | 萬兆網(wǎng)絡(luò) |
| 延遲 | <1ms |
| 丟包率 | <0.01% |
六、容量規(guī)劃
6.1 副本數(shù)選擇
| 業(yè)務(wù)等級 | 副本數(shù) | 說明 |
|---|---|---|
| 核心業(yè)務(wù) | 3 | 高可用保障 |
| 一般業(yè)務(wù) | 2 | 成本平衡 |
| 開發(fā)測試 | 1 | 僅開發(fā)使用 |
6.2 節(jié)點規(guī)劃
建議生產(chǎn)環(huán)境至少3個節(jié)點:
- 支持三副本部署
- 保證多數(shù)派選舉
- 避免單點故障
總結(jié)
TDengine高可用架構(gòu)要點:
- 配置合理的副本策略
- 確保網(wǎng)絡(luò)質(zhì)量
- 建立監(jiān)控告警體系
- 定期進(jìn)行故障演練
- 制定災(zāi)備恢復(fù)預(yù)案



互聯(lián)網(wǎng).png)



-1.png)







證.png)


伙伴.png)
伙伴.png)
伙伴.png)



