自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文弄懂分庫(kù)分表模式下數(shù)據(jù)遷移

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù)
互聯(lián)網(wǎng)項(xiàng)目中有很多“數(shù)據(jù)量大,業(yè)務(wù)復(fù)雜度高,需要分庫(kù)分表”的業(yè)務(wù)場(chǎng)景。

架構(gòu)方案:分庫(kù)分表模式下,數(shù)據(jù)庫(kù)擴(kuò)容方案

一、數(shù)據(jù)庫(kù)擴(kuò)容

1、業(yè)務(wù)場(chǎng)景

互聯(lián)網(wǎng)項(xiàng)目中有很多“數(shù)據(jù)量大,業(yè)務(wù)復(fù)雜度高,需要分庫(kù)分表”的業(yè)務(wù)場(chǎng)景。

這樣分層的架構(gòu)

(1)上層是業(yè)務(wù)層biz,實(shí)現(xiàn)業(yè)務(wù)邏輯封裝;

(2)中間是服務(wù)層service,封裝數(shù)據(jù)訪問;

(3)下層是數(shù)據(jù)層db,存儲(chǔ)業(yè)務(wù)數(shù)據(jù);

2、擴(kuò)容場(chǎng)景和問題

當(dāng)數(shù)據(jù)量持續(xù)新增,面臨著這樣一些需求,兩臺(tái)數(shù)據(jù)庫(kù)無法容納,需要數(shù)據(jù)庫(kù)擴(kuò)容,這里選擇2臺(tái)—擴(kuò)容到3臺(tái)的模式,如下圖:

這樣擴(kuò)容的問題

(1)分庫(kù)分表的策略導(dǎo)致數(shù)據(jù)遷移量大;

(2)影響數(shù)據(jù)的持續(xù)服務(wù)性;

(3)指定時(shí)間完成,技術(shù)壓力大,容易導(dǎo)致預(yù)想不到的錯(cuò)誤;

如何平穩(wěn)不停機(jī)遷移數(shù)據(jù),保證系統(tǒng)持續(xù)服務(wù)。

二、擴(kuò)容解決方案

1、擴(kuò)容方案圖解

(1)分庫(kù)分表基于MySQL數(shù)據(jù)庫(kù),使用shard-jdbc中間件

(2)該方案的思路整體基于SpringCloud微服務(wù)架構(gòu)

2、解決擴(kuò)容問題

(1)擴(kuò)容情況下不需要暫停服務(wù);

(2)數(shù)據(jù)遷移的壓力小,不需要指定時(shí)間;

3、數(shù)據(jù)訪問層邏輯

方案描述

基于兩臺(tái)數(shù)據(jù)庫(kù)分庫(kù)分表,簡(jiǎn)稱:服務(wù)二

基于三臺(tái)數(shù)據(jù)庫(kù)分庫(kù)分表,簡(jiǎn)稱:服務(wù)三

(1)提供兩套服務(wù),服務(wù)二和服務(wù)三

(2)數(shù)據(jù)庫(kù)擴(kuò)容后,如果訪問服務(wù)三直接獲取到數(shù)據(jù),流程結(jié)束。

(3)如果訪問服務(wù)三獲取不到數(shù)據(jù),則訪問服務(wù)二獲取數(shù)據(jù)。

(4)在遷移開始的一段時(shí)間內(nèi),訪問壓力還會(huì)在服務(wù)二上面。

(5)這樣就做到數(shù)據(jù)訪問服務(wù)不會(huì)停機(jī)。

(6)這種訪問模式基于SpringCloud很容易做到。

4、數(shù)據(jù)遷移層邏輯

方案描述

(1)關(guān)閉基于兩臺(tái)庫(kù)的數(shù)據(jù)入庫(kù)流程

(2)開啟基于三臺(tái)庫(kù)的數(shù)據(jù)入庫(kù)流程,這樣新入庫(kù)數(shù)據(jù)就可以被服務(wù)三直接訪問到。

(3)開發(fā)數(shù)據(jù)遷移中間件,掃描原先兩臺(tái)庫(kù)的數(shù)據(jù)。

(4)掃描的數(shù)據(jù)根據(jù)分三臺(tái)庫(kù)策略判斷是否需要遷移。

(5)如果數(shù)據(jù)需要遷移,則調(diào)用服務(wù)三的數(shù)據(jù)入庫(kù)接口。

(6)數(shù)據(jù)遷移完成后,刪除原來的位置的數(shù)據(jù)。

(7)這種遷移模式基于SpringCloud很容易做到。

5、該方案遷移的優(yōu)點(diǎn)

(1)整個(gè)過程是持續(xù)對(duì)線上提供服務(wù);

(2)數(shù)據(jù)遷移中間件的開發(fā)復(fù)雜度較低;

(3)可以限速慢慢遷移,沒有時(shí)間壓力。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2020-09-27 08:00:49

分庫(kù)分表

2024-08-13 17:09:00

架構(gòu)分庫(kù)分表開發(fā)

2024-12-04 13:02:34

數(shù)據(jù)庫(kù)分庫(kù)分表

2023-02-24 15:24:14

MySQL數(shù)據(jù)庫(kù)管理分庫(kù)分表

2022-08-09 09:10:43

Kubernetes容器

2023-11-28 09:31:55

MySQL算法

2023-09-18 08:02:45

CSS布局屬性

2023-10-26 16:27:50

前端 WebCSS開發(fā)

2023-12-12 07:31:51

Executors工具開發(fā)者

2022-09-01 08:01:56

Pythongunicorn

2024-05-09 10:11:30

2023-04-04 08:01:47

2023-03-30 08:52:40

DartFlutter

2021-06-02 05:43:36

比特幣虛擬貨幣區(qū)塊鏈

2023-03-27 17:58:34

MySQL加鎖間隙鎖

2022-09-05 09:25:53

KubernetesService

2022-08-03 08:01:16

CDN網(wǎng)站服務(wù)器

2022-01-04 08:54:32

Redis數(shù)據(jù)庫(kù)數(shù)據(jù)類型

2020-11-06 15:30:23

分庫(kù)分表Sharding-JD數(shù)據(jù)庫(kù)

2018-03-14 09:49:35

數(shù)據(jù)庫(kù)遷移
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)