




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
分庫分表理論CDS實踐如何接入CDS目錄分庫分表理論分庫分表為什么有什么難點怎么分如何解決分庫分表理論為什么要分庫分表?業務數據量劇增訪問并發量劇增業務系統可用性需求如何選擇拆分策略?垂直拆分水平拆分兩者結合分庫分表理論分庫分表理論分庫分表理論分庫分表帶來了哪些難題?分布式事務復雜SQL查詢跨庫跨表Join數據運維CDS系統架構1-M2-M3-M1-S2-S3-SDriver(JDBC)ServerCDS規則庫ConsoleMyDB作業平臺分布式事務CDS集群業務應用進程CDS驅動架構ApplicationApplicationMySQLOracleSQLServer讀寫分離路由規則容災模塊連接池監控SQLParserSQLRewriter鏈接池ResultSetStatement分布式事務管理NativeJDBCDriverSQL對象緩存SQL查詢流程Sql和參數Sql解析tablescolumnswhereclasemax/min/count/sum/avglimitgroupbyorderby規則計算分表定位Sql重寫執行sql返回結果集合并結果集查詢或更新結果CDS集群結構…全局表A孤立表C切分表B全局表A全局表A全局表A孤立表C切分表B_01切分表B_02切分表B_10全局組分庫1分庫2分庫10全局表:每個工作組都存在相同的數據備份(比如.城市、類別)切分表:插入數據時根據切分鍵插入到不同分表(比如.業務流水表)孤立表:可以存放在任意工作組包含數據表(比如.配置表)CDS集群CDS水平拆分單庫多級路由水平拆分級聯路由策略range軸V0V1SplittingPoint2SplittingPoint1SplittingPoint3SP2<=X<SP3X值Hash路由Range路由策略+Hash路由策略CDS基本特性分庫分表分區規則支持:Hash,Range,List,自定義(groovy)支持oracle、mysql、sqlserver數據庫支持復合切分鍵支持級聯切分鍵支持DDL變更支持Sum/Max/Min/Count/Avg聚合函數不支持:復雜子查詢、更新切分鍵字段非分庫分表支持存儲過程支持大部分DML、DDLCDS特性--讀寫分離負載均衡權重設置故障恢復主備備查詢主備備工作組1工作組2APPCDS更新查詢更新復制復制復制復制CDS特性—Failover適用于流水型業務表,記錄變更與查詢不依賴之前的信息主庫故障由生產DBA手動觸發推送事件,將新請求指向failover庫,主庫恢復后需要手動做數據回遷操作主備主工作組空備組1查詢2重查備APPCDS復制復制CDS特性--Sequence全局Sequence全局唯一不保證全局有序單點問題分表Sequence解決單點問題與分表一一對應唯一性由業務保證數據管道業務庫BinLogsBinlog讀取解析規整過濾、規整、分發業務數據數據管道服務業務處理事務消息表WORKER業務處理業務處理數據同步服務分布式事務補償業務處理其它應用場景分布式事務分布式系統事務處理的三種方式:分布式事務基于BestEfforts1PC模式的事務事務補償機制小結:分布式事務,最嚴格的事務實現,性能是個大問題;BestEfforts1PC模式,性能與事務可靠性的平衡,支持系統水平伸縮,大多數情況下是最合適的選擇;事務補償機制,最終一致,犧牲實時一致性,獲得最大的性能回報。CDS事務補償基于BASE模型,通過解析Mysql的binlog來實現事務補償,對用戶完全透明,不一致時間窗口控制在秒級;最終狀態為事務失敗狀態,業務能感知事務失敗異常;CDS事務補償APP(CDSDriver)DB1DB2問題:補償哪個binlog事務?怎么建立mit()和mit()的聯系mit()mit()CDS事務補償binlogAPP(CDSDriver)DB1mit()DB2mit()Binlog解析事務補償事務確認binlogCDS事務服務反向補償通知補償CDS事務補償try{ connection1.insert、update、delete...
connection2.insert、update、delete... ......
try{
insert
cluster_xa_1
insert
cluster_xa_2
mit(); connection2.commit(); }catch(Exceptione){
notifyTxServer();//通知事務服務
…..}}catch(Exceptione){ connection1.rollback(); connection2.rollback();}CDSDriver向每個分庫cluster_xa表插入一條相同記錄,業務服務完全透明CDS事務補償xa_uuidxa_dbunitscur_dbunittimestampxxxdb1,db2db1xxx……………………Cluster_XA表xa_uuid:每個外圍事務分配一個uuid,唯一標識分布式事務xa_dbunits:外圍事務涉及到的數據庫單元cur_dbunit:當前分庫標識;timestamp:時間戳,用于計算超時時間CDS事務補償--時序圖CDS事務補償?進程自己宕機了,而無法向TxServer發出事務補償通知…解決了DB2宕機事務補償;解決了到DB2網絡中斷,無法提交的事務補償;CDS事務補償--進程宕機DB1BinaryLogs1解析Binlog事務補償處理DB2BinaryLogs2解析Binlog存在一致的xaId歸集相同的xaId是否失敗業務處理調用成功業務處理調用結束DB1提交成功了事
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購買插畫版權合同范本
- 預防醫學知到課后答案智慧樹章節測試答案2025年春濱州醫學院
- 財務數據分析模板
- 制作安裝窗戶合同范本
- 2025 網點店鋪租賃合同 標準版 模板
- 2024年中山市沙溪鎮招聘真題
- 2024年榆林市吳堡縣縣屬國有企業招聘真題
- 2025年高層管理人員勞動合同的認定與合同續簽策略
- 2024年龍巖市市屬事業單位考試真題
- 2024年雷州市市屬事業單位考試真題
- 2025山東濰坊市天成水利建設有限公司招聘30人查看職位筆試參考題庫附帶答案詳解
- 弱電工程施工項目管理流程
- 2024-2025學年二年級語文下冊統編版第四單元達標卷(單元測試)(含答案)
- 2025年高考英語二輪復習專題01 閱讀理解之細節理解題(課件)(新高考)
- 河南鄭州大學第二附屬醫院招聘考試真題2024
- 7.2做中華人文精神的弘揚者 課件 -2024-2025學年統編版道德與法治七年級下冊
- 2024年貴州省高考地理試卷(含答案詳解)
- 肝膿腫教學查房
- 2025高考數學專項講義第18講圓錐曲線中的極點極線問題(高階拓展、競賽適用)(學生版+解析)
- 15 青春之光(公開課一等獎創新教案)
- 2025年全球及中國居家康復服務行業頭部企業市場占有率及排名調研報告
評論
0/150
提交評論