高併發(二) 資料遷移方案

2022-07-08 22:42:11 字數 791 閱讀 5928

本文圍繞乙個問題展開。

現在有乙個未分庫分表的系統,未來要分庫分表,如何設計才可以讓系統從未分庫分表動態切換到分庫分表上?

導數完了之後,就 ok 了,修改系統的資料庫連線配置啥的,包括可能**和 sql 也許有修改,那你就用最新的**,然後直接啟動連到新的分庫分表上去。

驗證一下,ok了,完美,大家伸個懶腰,看看看凌晨 4 點鐘的北京夜景,打個滴滴回家吧。

但是這個方案比較 low,誰都能幹,我們來看看高大上一點的方案。

這個是我們常用的一種遷移方案,比較靠譜一些,不用停機,不用看北京凌晨 4 點的風景。

然後系統部署之後,新庫資料差太遠,用之前說的導數工具,跑起來讀老庫資料寫新庫,寫的時候要根據 gmt_modified 這類字段判斷這條資料最後修改的時間,除非是讀出來的資料在新庫里沒有,或者是比新庫的資料新才會寫。簡單來說,就是不允許用老資料覆蓋新資料。

導完一輪之後,有可能資料還是存在不一致,那麼就程式自動做一輪校驗,比對新老庫每個表的每條資料,接著如果有不一樣的,就針對那些不一樣的,從老庫讀資料再次寫。反覆迴圈,直到兩個庫每個表的資料都完全一致為止。

接著當資料完全一致了,就 ok 了,基於僅僅使用分庫分表的最新**,重新部署一次,不就僅僅基於分庫分表在操作了麼,還沒有幾個小時的停機時間,很穩。所以現在基本玩兒資料遷移之類的,都是這麼幹的。

高併發處理方案

時常看到高併發的問題,但高併發其實是最不需要考慮的東西。為何,他虛無縹緲,很少有 真的需要這些東西,而且其中很多技術,其實你已經在用了。有這個意識就夠了,不需要時刻盯著這個問題。只有很少的 真的能達到高併發。簡單做乙個歸納,從低成本 高效能和高擴張性的角度來說有如下處理方案 1 html靜態化 2 ...

高併發處理方案

時常看到高併發的問題,但高併發其實是最不需要考慮的東西。為何,他虛無縹緲,很少有 真的需要這些東西,而且其中很多技術,其實你已經在用了。有這個意識就夠了,不需要時刻盯著這個問題。只有很少的 真的能達到高併發。簡單做乙個歸納,從低成本 高效能和高擴張性的角度來說有如下處理方案 1 html靜態化 2 ...

高併發處理方案

時常看到高併發的問題,但高併發其實是最不需要考慮的東西。為何,他虛無縹緲,很少有 真的需要這些東西,而且其中很多技術,其實你已經在用了。有這個意識就夠了,不需要時刻盯著這個問題。只有很少的 真的能達到高併發。簡單做乙個歸納,從低成本 高效能和高擴張性的角度來說有如下處理方案 1 html靜態化 2 ...