TDSQL
TDSQL(Tencent Distributed MySQL)是騰訊針對金融級 聯機交易場景推出的高一致性,分布式數據庫集群解決方案
核心特性
高一致性、高可用性、高性能
TDSQL核心架構:
實例:從業務視角看到的一個具有完整能力的數據庫
分片(sharding):**是由數據庫節點組(SET)和支撐系統組成一主多從數據庫,也是水平拆分后承載數據的基本單元
節點(DataNode):承載分片的五里界店,一個SET通常包括一個主節點和多個從節點。
Proxy:賬號鑒權、管理連接、SQL解析、分配路由的網關模塊
調度集群、決策集群:作為幾群的管理調度中心,主要保證數據庫及誒單組、接入網關集群的正常運行;
ADS節點:擴展的計算節點,采用只讀的方式與SET連接,以JDBC的方式獲取數據,以spark作為基礎
主備數據復制方式:
主要分為:異步復制、半同步復制、強同步復制
半同步復制的不足:超時后退化成異步,金融場景不合適;跨IDC的情況下性能不樂觀
為了解決這個問題:
通過用戶線程異步化,在等待返回應答時保存THD會話,讓線程可以去處理別的連接,不會做無用的等待
高一致性容災——如何保證沒有臟數據
原則:
1.主機可讀可寫,備機只讀,備機可以開放給業務查詢使用
2.任何時刻同一個SET不能有兩個主機
3.寧願拒絕服務,不提供錯誤的服務,追求CAP中的C,必要的時候犧牲掉部分A
1. 主DB降級為備機
2. 參與選舉的備機上報最新的binlog點
3. Scheduler收到binlog點之后,選擇出binlog最大的節點
4. 重建主備關系
5. 修改路由
6. 請求發給新的主機
數據高可用性的保障機制(恢復):
注:為了保障數據高可用性,一般用三個副本
數據備份:
物理備份:
-
1. 利用xtrabackup備份物理文件。 2. 每天凌晨或者指定時間點備份一次 3. 壓縮備份到HDFS。 4. 可配置。
邏輯備份:
-
1. 利用mydumper備份工具 2. 每天備份一次 3. 壓縮備份到HDFS 4. 每個庫、表結構、表數據獨立備份,恢復時可以單獨恢復
binlog備份
-
實時備份binlog到hdfs。Lz4壓縮。
全面安全防護:
事前:IP白名單;SSL連接加密;SQL防火牆
事中:文件透明加密;網絡隔離;運維安全保障
事后:數據庫審計;操作日志審計;服務器審計
讀寫分離:
基於數據庫賬號的讀寫分離:
基於Hint和自動分析事物的讀寫分離:
分布式實踐,擴展性、分布式事物
多源同步: