bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

基于賬戶系統做數據庫數據遷移的方法是什么

這篇文章主要講解了“基于賬戶系統做數據庫數據遷移的方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“基于賬戶系統做數據庫數據遷移的方法是什么”吧!

10年積累的成都做網站、網站制作、成都外貿網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先做網站設計后付款的網站建設流程,更有延吉免費網站建設讓你可以放心的選擇與我們合作。

    1. 新舊系統的數據庫分析

    新舊系統都是基于Mycat分片,舊系統有12個分片,新系統有8個分片;由于新系統是重構,目前只對其中一種會員的賬戶類型(會員主錢包,相當于余額寶)進行重構,剩余的果幣、積分、優惠券就在后續的迭代中慢慢重構。

    單算主錢包的話,用戶信息大約5千萬,主錢包賬戶信息大約在5千萬,流水大約在8千萬左右。涉及的表有三張,就稱為user_info和account_info表和account_record表,對應到新系統也是這兩三表,差別是里面的數據需要做轉換。如圖,老系統是基于old_user_id分片,新系統是基于new_user_id分片

基于賬戶系統做數據庫數據遷移的方法是什么

    2. 采用的線程模型及演進

    2.1 程序連接數據庫方式

    兩邊系統都是基于Mycat進行分片,遷移程序如果是通過mycat連接數據庫的話,速度會稍慢;就打算通過直連各個分片進行遷移,但是由于兩邊的分片數不同和分片的字段不一樣,通過直連的方式遷移到新系統時需要自己寫分片規則。

基于賬戶系統做數據庫數據遷移的方法是什么

    如圖直連的方式,從舊系統讀取一批數據時需要計算出具體落到新系統的哪個分片,為了減少實現復雜度和正式遷移時出現問題能快速定位,所以采用了另一種方式。舊系統采用直連12個分片,寫入到新系統時通過mycat,規則的計算由Mycat處理。

基于賬戶系統做數據庫數據遷移的方法是什么

    2.2 通過隊列方式,多線程讀,多線程寫

    為了提高速度,毫不猶豫的選擇了多線程的方案,一開始想到的就是基于隊列的方式,一邊讀一邊寫兩不誤;舊系統總共12個分片,每次開啟多個線程讀取一個分片的數據放進阻塞隊列,同時多個線程從隊列取數據并組裝再通過Mycat寫入新系統。直到一個分片的數據讀取完再讀取下一個分片。

    優點:讀取速度快

    缺點:寫入慢,造成消息堆積,內存不足,導致GC頻繁,速度變慢。    基于賬戶系統做數據庫數據遷移的方法是什么

    2.3 以分片的維度切割線程,同個線程同步讀寫(以讀取用戶信息和賬戶信息為例)

    由于遷移的服務器是8核32G,所以只開啟8個線程分別去讀取12個分片的數據,同個線程里同步讀寫數據。如圖,步驟如下,基于該方案,用戶和賬戶數據的遷移時間大約為26分鐘左右。

  1. 將舊系統12個分片放進阻塞隊列。

  2. 每個線程開始時從隊列拿一個分片數據源,通過直連的方式

  3. 分頁讀取,每批次大約5000條,組裝數據后通過新系統的mycat插入數據

  4. 直到最后一批數據小于5000條時,認為該分片的數據已經讀取完畢

  5. 讀取完畢后該線程進行分片切換,即重新到隊列拿取新的分片,如果隊列的分片為空,則線程退出,否則重復1-4

基于賬戶系統做數據庫數據遷移的方法是什么

感謝各位的閱讀,以上就是“基于賬戶系統做數據庫數據遷移的方法是什么”的內容了,經過本文的學習后,相信大家對基于賬戶系統做數據庫數據遷移的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!

本文名稱:基于賬戶系統做數據庫數據遷移的方法是什么
網頁鏈接:http://vcdvsql.cn/article6/iijoig.html

成都網站建設公司_創新互聯,為您提供網站維護、云服務器面包屑導航、ChatGPT、服務器托管App設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網頁設計公司