在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數據遷移和數據一致性的問題

倩倩 ? 來源:juejin.cn ? 作者:juejin.cn ? 2022-09-26 10:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

通過對數據的垂直拆分或水平拆分后,我們解決了數據庫容量、性能等問題,但是將會面臨數據遷移和數據一致性的問題。

在數據遷移方面,需要考慮如何快速遷移、平滑遷移、不停機的遷移等。待數據遷移完畢后,還需要校驗數據的完整性。

數據一致性方面,要根據的業務來判斷是否要必要引入分布式事務,如果需要引入分布式事務,需要斟酌是采用XA,還是基于BASE的柔性事務。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

數據遷移

數據遷移是很容易出故障的一個環節,需要考慮怎么更加平滑的遷移舊數據到新的數據庫和系統,以及達到數據準確、快速遷移、減少停機、對業務的影響小等,特別是異構的數據結構情況下,難度更大。

全量

全量遷移的過程如下:

業務系統停機。

數據庫遷移,校驗數據一致性。

然后業務系統升級,接入新的數據庫。

缺點:

需要業務系統停機

遷移時間較長,對業務影響較大。如果是異構數據的話,需要使用程序來處理,遷移時間更長。

全量+增量

全量+增量遷移的方式,需要依賴數據本身的創建時間,步驟如下:

先同步數據到最近的某個時間戳(創建時間)。

然后發布系統升級維護的通知。

然后同步最近一段時間變化的數據。

最后升級系統,接入新的數據庫。

全量+增量的同步相比全量同步的方式,大大的減少了系統停機的時間,對業務影響較小。

binlog+全量+增量

binlog+全量+增量是通過從數據庫的主庫或者從庫解析和重新構造數據,實現復制。

通常情況下都需要中間件等工具的支持,一般需要中間件等工具的支持。可以實現多線程、斷點續傳、全量和增量數據的同步,還可以實現自動擴容和縮容。

常見的工具有:Canal、ShardingSphere-scaling等

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://gitee.com/zhijiantianya/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

分布式事務

XA分布式事務

XA分布式事務,是數據庫本身支持的協議,具備強一致性。

96aab1ce-3d3f-11ed-9e49-dac502259ad0.jpg

XA分布式事務的組件:

應用程序(Application Program, 簡稱AP): 用于定義事務邊界,即事務的開始和結束,并且在事務邊界內對資源進行操作。

資源管理器(Resource Manager, 簡稱RM): 如數據庫、文件系統,并且提供訪問資源的方式。

事務管理器(Transaction Manager, 簡稱TM): 負責分配事務唯一標識,監控事務的執行進度,并且負責事務的提交、回滾等。

XA接口:

xa_start 負責開啟或者恢復一個事務分支

xa_end 負責取消當前線程與事務分支的關聯

xa_prepare 詢問RM是否準備好提交事務分支

xa_commit 通知RM提交事務分支

xa_rollback 通知RM回滾事務分支

xa_recover 需要恢復的XA事務

MySQL從5.0.3開始支持InnoDB引擎的XA分布式事務。

96c5614a-3d3f-11ed-9e49-dac502259ad0.jpg

完整的XA事務處理流程如下:

96ee0b2c-3d3f-11ed-9e49-dac502259ad0.jpg

主流的XA框架有:Atomikos、Narayana、Seata

XA分布式事務存在的問題:

同步阻塞:全局事務包含了多個獨立的事務分支,這一組事務分支要么都不成功,要不都失敗,各個分支的ACID特性共同構成了全局事務的ACID特性。如果對讀操作很敏感,需要將數據庫的隔離級別設置為SERIALIZABLE,性能特別的差。

單點故障:TM存在單點故障,需要考慮TM高可用性。

數據不一致:極端情況下,會出現事務失敗問題,需要監控和人工處理。即二階段commit請求后,發送網絡故障,只有一部分RM收到請求,其他節點沒有收到Commit請求的情況。

柔性事務

BASE的核心在于,保證系統基本可用的前提下,通過利用柔性狀態(支付操作后不是支付成功,而是支付中狀態),實現數據的最終一致性,如下:

基本可用(Basically available),分布式事務參與方不一定同時在線。

柔性狀態(Soft state), 允許系統狀態更新有一定的延遲,出現一些中間狀態,這個延遲對客戶來說不一定能夠察覺。

最終一致性(Eventually consistent),通常是通過消息傳遞的方式保證系統的最終一致性。

柔性事務核心理念是通過業務邏輯將互斥鎖操作從RM層上升到業務層,通過放寬對強一致性的要求,來換取系統吞吐量的提升。

9729c7ca-3d3f-11ed-9e49-dac502259ad0.jpg

BASE柔性事務常見模式

TCC: 通過手動補償處理

AT: 通過自動補償處理

TCC介紹

TCC模式即將每個服務業務操作分成兩個階段,第一個階段檢查并預留相關資源,第二個階段根據所有服務業務的try狀態來操作,如果都成功,則進行Confirm操作,如果任意一個Try發送錯誤,則全部Cancel。

Try:準備操作,完成所有的業務檢查,預留業務資源。

Confirm:真正執行的業務邏輯,不做任意的業務檢查,只使用Try階段預留的業務資源。因此Try操作成功,Confirm必須能成功。同時,Confirm操作必須保證冥等性,保證一筆分布式事務能切只能成功一次。

Cancel:釋放Try階段預留的業務資源,同樣Cancel操作也必須滿足冥等性。

977a8fca-3d3f-11ed-9e49-dac502259ad0.jpg

TCC模型實際是通過業務分解來實現分布式事務,對業務有較強的侵入性。

TCC模型需要注意的地方:

允許空回滾,即try沒有完成資源預留,允許短路操作。

防懸掛控制,即需要保證,cancel必須在try之后才執行。

冥等性設計,即需要保證confirm和cancel需要保證冥等性,防止網絡因素導致數據混亂。

AT

AT模式就是兩階段提交,自動生成反向SQL,當發生異常的時候,通過反向SQL回滾數據。

97cd1362-3d3f-11ed-9e49-dac502259ad0.jpg

Seata框架對AT的支持如下:

97eb13d0-3d3f-11ed-9e49-dac502259ad0.jpg

第一階段,業務數據和回滾日志記錄在同一個本地事務中提交,釋放本地鎖和連接資源。

第二階段,提交異步化,非常快速的完成,回滾的話通過一階段的回滾日志進行反向補償。

柔性事務下的事務特性

原子性:正常情況下保證

一致性:某個時間點,數據存在不一致,但是最終是一致的。

隔離性:某個時間點,A能讀到B事務未提交的結果,即會臟讀現象。

持久性:和本地事務一樣,只要commit則數據就會被持久化。

總結

分布式事務主要目的是解決數據一致性問題,XA強一致,但是吞吐量太低,不利于高并發場景。柔性事務不保證強一致性,但是通過補償實現最終一致性,常見的補償有重試補償、調度補償、人工補償等。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3907

    瀏覽量

    65957
  • 數據遷移
    +關注

    關注

    0

    文章

    83

    瀏覽量

    7090

原文標題:分庫分表后,數據庫數據一致性問題如何解決?

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    車用鋰離子電池機理建模與并聯模組不一致性研究

    車用鋰離子電池機理建模與并聯模組不一致性研究
    發表于 05-16 21:02

    一致性校正與邊緣融合拼接

    電子發燒友網站提供《差一致性校正與邊緣融合拼接.pdf》資料免費下載
    發表于 04-10 18:02 ?0次下載

    請問如何保證多片AD1278的通道之間相位一致性

    讀取手冊,發現要保證多片AD1278的通道之間相位一致性需要兩點:1、CLK一致;2、SYNC_N同時拉高。 我的情況: 1、各個AD1278的CLK來著不同的時鐘源,即分別采用10ppm
    發表于 01-14 06:02

    FCB-EV9520L光軸一致性的典范,焦距變換精準如初

    索尼FCB-EV9520L出色的光軸一致性在多個應用場景中展現出了其獨特的優勢和價值。通過提高圖像的準確、減少圖像畸變以及增強應用場景的適應,FCB-EV9520L成為了市場上備受矚目的視頻產品解決方案之
    的頭像 發表于 12-09 09:45 ?609次閱讀
    FCB-EV9520L光軸<b class='flag-5'>一致性</b>的典范,焦距變換精準如初

    云原生和數據庫哪個好些?

    云原生和數據庫哪個好些?云原生和數據庫各有其獨特的優勢,適用于不同的場景。云原生強調高效資源利用、快速開發部署和高可伸縮,適合需要高度靈活性和快速迭代的應用。而
    的頭像 發表于 11-29 10:07 ?495次閱讀

    Oracle報錯“system01.dbf需要更多的恢復來保持一致性”的數據恢復案例

    Oracle數據庫故障&分析: 臺Oracle數據庫打開報錯,報錯信息: “system01.dbf需要更多的恢復來保持一致性數據庫無
    的頭像 發表于 11-27 13:10 ?605次閱讀
    Oracle報錯“system01.dbf需要更多的恢復來保持<b class='flag-5'>一致性</b>”的<b class='flag-5'>數據</b>恢復案例

    一致性測試系統的技術原理和也應用場景

    網絡癱瘓等問題。因此,為了保證CAN FD網絡的正常安全運行,需要對物理層、數據鏈路層和應用層進行一致性測試。例如,物理層一致性測試主要是對CAN FD網絡節點的電阻特性、電容特性和總線終端電阻以及
    發表于 11-01 15:35

    異構計算下緩存一致性的重要

    在眾多回復中,李博杰同學的回答被認為質量最高。他首先將緩存一致性分為兩個主要場景:是主機內CPU與設備間的一致性;二是跨主機的一致性
    的頭像 發表于 10-24 17:00 ?1613次閱讀
    異構計算下緩存<b class='flag-5'>一致性</b>的重要<b class='flag-5'>性</b>

    LMK05318的ITU-T G.8262一致性測試結果

    電子發燒友網站提供《LMK05318的ITU-T G.8262一致性測試結果.pdf》資料免費下載
    發表于 09-20 11:21 ?0次下載
    LMK05318的ITU-T G.8262<b class='flag-5'>一致性</b>測試結果

    TPS23882B SIFOs IEEE802.3bt 一致性測試報告

    電子發燒友網站提供《TPS23882B SIFOs IEEE802.3bt 一致性測試報告.pdf》資料免費下載
    發表于 09-03 10:48 ?1次下載
    TPS23882B SIFOs IEEE802.3bt <b class='flag-5'>一致性</b>測試報告

    級聯一致性和移相器校準應用手冊

    電子發燒友網站提供《級聯一致性和移相器校準應用手冊.pdf》資料免費下載
    發表于 08-29 10:48 ?0次下載
    級聯<b class='flag-5'>一致性</b>和移相器校準應用手冊

    電感值和直流電阻的一致性如何提高?

    提高電感值和直流電阻的一致性,可以從以下幾個方面入手: 、提高電感值的一致性 優化磁芯選擇 : 磁芯是電感器的關鍵組成部分,其材料特性和尺寸直接影響電感值。選擇具有高磁導率、低磁阻和穩定性能的材料
    的頭像 發表于 08-19 15:27 ?673次閱讀

    LIN一致性測試規范2.1

    電子發燒友網站提供《LIN一致性測試規范2.1.pdf》資料免費下載
    發表于 08-15 17:14 ?7次下載

    新品發布 | 同星智能正式推出CAN總線一致性測試系統

    CAN總線一致性測試系統CANFD/CAN總線一致性測試系統,在硬件系統上基于同星自主研發的總線分析工具,干擾儀,一致性測試機箱,并搭配程控電源,示波器,數字萬用表等標準外圍儀器設備;在軟件上
    的頭像 發表于 07-06 08:21 ?957次閱讀
    新品發布 | 同星智能正式推出CAN總線<b class='flag-5'>一致性</b>測試系統

    銅線鍵合焊接一致性:如何突破技術瓶頸?

    在微電子封裝領域,銅線鍵合技術以其低成本、高效率和良好的電氣性能等優勢,逐漸成為芯片與基板連接的主流方式。然而,銅線鍵合過程中的焊接一致性問題是制約其進步發展和應用的關鍵難題。焊接一致性不僅
    的頭像 發表于 07-04 10:12 ?2438次閱讀
    銅線鍵合焊接<b class='flag-5'>一致性</b>:如何突破技術瓶頸?
    主站蜘蛛池模板: 一级做a爰片久久毛片人呢 一级做a爰片久久毛片图片 | 性欧美成人免费观看视 | 激情五月综合婷婷 | 日本一区二区不卡视频 | 天堂在线天堂最新版在线www | 午夜视频免费看 | 午夜黄网站 | 精品欧美小视频在线观看 | 欧美一级鲁丝片 | 午夜在线看片 | 久久午夜精品视频 | 999精品国产 | www激情com| 5252色欧美在线激情 | 欧美97色| 国产一级特黄aa大片在线 | 色视频网站在线观看 | 综合婷婷丁香 | 永久观看| 日韩一级黄 | 56pao强力打造 | 四虎中文 | 222aaa免费国产在线观看 | 欧美日日日 | 久久性妇女精品免费 | 天堂色综合 | 簧 色 成 人 | a爱视频| a天堂中文在线 | 久视频在线观看久视频 | 日本卡一卡2卡3卡4精品卡无人区 | 欧美黄色tv| 国语对白老女人8av 孩交精品xxxx视频视频 | 六月婷婷精品视频在线观看 | 日本黄色影片在线观看 | 国产无套粉嫩白浆 | 亚洲一区高清 | 久久久免费精品视频 | 欧美精品国产第一区二区 | 超级黄色毛片 | 夜夜爽天天操 |