成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何實(shí)現(xiàn)絲滑般的數(shù)據(jù)庫擴(kuò)容

數(shù)據(jù)庫 MySQL
隨著數(shù)據(jù)量的不斷增大,一般我們要對(duì)數(shù)據(jù)進(jìn)行水平切分,水平切分的規(guī)則你可以簡單根據(jù)用戶id或者用戶IP對(duì)數(shù)據(jù)進(jìn)行取模,實(shí)現(xiàn)路由功能。當(dāng)然也可以增加Slave跟KeepAlived來實(shí)現(xiàn)高可用。

[[398632]]

本文轉(zhuǎn)載自微信公眾號(hào)「sowhat1412」,作者sowhat1412。轉(zhuǎn)載本文請聯(lián)系sowhat1412公眾號(hào)。

引言

初版

如果我們的線上服務(wù)不重要,一般來個(gè)單體的數(shù)據(jù)庫DB來存儲(chǔ)數(shù)據(jù)即可來。

單體應(yīng)用

優(yōu)點(diǎn):簡單,省事,方便。

缺點(diǎn):數(shù)據(jù)并發(fā)性,穩(wěn)定性都有問題。

進(jìn)階

隨著數(shù)據(jù)量的不斷增大,一般我們要對(duì)數(shù)據(jù)進(jìn)行水平切分,水平切分的規(guī)則你可以簡單根據(jù)用戶id或者用戶IP對(duì)數(shù)據(jù)進(jìn)行取模,實(shí)現(xiàn)路由功能。當(dāng)然也可以增加Slave跟KeepAlived來實(shí)現(xiàn)高可用。

主從+路由

但問題是,如果隨著業(yè)務(wù)發(fā)展,目前我們2個(gè)庫的性能扛不住了,還要繼續(xù)水平拆分,造出更多庫咋辦?你一般是如何實(shí)現(xiàn)絲滑擴(kuò)容的呢?

擴(kuò)容

第一版:停機(jī)擴(kuò)容

停機(jī)擴(kuò)容

簡單直接暴力的方法。

  • APP通知用戶在某個(gè)時(shí)間段停機(jī)維護(hù)升級(jí)。
  • 新建若干個(gè)具有高可用的庫。
  • 停止當(dāng)前服務(wù),然后寫個(gè)數(shù)據(jù)遷移程序,實(shí)現(xiàn)把老庫數(shù)據(jù)全部遷移到新庫中。
  • 修改代碼路由規(guī)則后重新對(duì)外提供服務(wù)。

優(yōu)點(diǎn):簡單

缺點(diǎn):中間停服務(wù)了,無法保證高可用。數(shù)據(jù)切換前跟切換過程中需確保無任何出錯(cuò)。

第二版:在線雙寫

在線雙寫

  1. 建立好新到數(shù)據(jù)庫,然后接下來用戶在寫原有數(shù)據(jù)庫到同時(shí)也寫一份數(shù)據(jù)到我們的新庫中。
  2. 寫個(gè)數(shù)據(jù)遷移程序,實(shí)現(xiàn)舊庫中的歷史數(shù)據(jù)遷移到新庫中。
  3. 遷移過程中,每次插入數(shù)據(jù)時(shí),需檢測數(shù)據(jù)的更新情況。比如,如果新的表中沒有當(dāng)前的數(shù)據(jù),則直接新增;如果新表有數(shù)據(jù)并沒有我們要遷移的數(shù)據(jù)新的話,我們就更新為當(dāng)前數(shù)據(jù),只能允許新的數(shù)據(jù)覆蓋舊的數(shù)據(jù),推薦使用Canal這樣到中間件。
  4. 經(jīng)過一段時(shí)間后需要校驗(yàn)新庫跟舊庫兩邊數(shù)據(jù)是否一樣。如果檢查到一樣了,則直接切換即可。

優(yōu)點(diǎn):高可用了。

缺點(diǎn):不夠絲滑,來回挪動(dòng)數(shù)據(jù)較大。

第三版:絲滑般擴(kuò)容

目標(biāo):打算將原來到兩個(gè)數(shù)據(jù)庫擴(kuò)容到4個(gè)。

第一步:修改配置

修改配置

修改配置信息,注意舊庫跟新庫之間到映射關(guān)系。確保擴(kuò)容后數(shù)據(jù)可以正確路由到服務(wù)器。

  • Id % 2 = 0 的庫變?yōu)榱?id % 4 = 0 或 id % 4 = 2
  • Id % 2 = 1 的庫變?yōu)榱?id % 4 = 1 或 id % 4 = 3

第二步:reload配置

服務(wù)層reload配置,可以重啟服務(wù),也可以CLoud那樣配置中心發(fā)送信號(hào)來實(shí)現(xiàn)重讀配置文件。

至此,數(shù)據(jù)庫的2 --> 4 擴(kuò)容完成,原來是2個(gè)數(shù)據(jù)庫實(shí)例提供服務(wù),現(xiàn)在變?yōu)?個(gè)數(shù)據(jù)庫實(shí)例提供服務(wù)。

第三步:收縮數(shù)據(jù)

絲滑擴(kuò)容

此時(shí) id % 4 = 0 跟 id % 4 = 2 的兩個(gè)DB 還在同步數(shù)據(jù)。id % 4 = 1 跟 id % 4 = 3的兩個(gè)DB還在同步數(shù)據(jù)。需做一些收尾操作。

  1. 接觸上面的兩個(gè)同步操作。
  2. 對(duì)新庫新建高可用。
  3. 刪除冗余數(shù)據(jù),比如id % 4 = 0的機(jī)器中刪除id % 4 = 2的冗余數(shù)據(jù),只為id % 4 = 0的數(shù)據(jù)提供服務(wù),其余三個(gè)類似操作。
  4. 至此實(shí)現(xiàn)成倍擴(kuò)容,還避免來數(shù)據(jù)遷移。

 

 

責(zé)任編輯:武曉燕 來源: sowhat1412
相關(guān)推薦

2021-08-18 06:40:54

KubernetesDocker Containerd

2017-10-31 13:20:00

H5翻頁庫框架

2022-07-15 07:58:18

SteampipeCLI 工具

2024-05-21 10:28:51

API設(shè)計(jì)架構(gòu)

2023-03-03 17:00:00

部署Linux內(nèi)核

2023-09-27 07:49:23

2025-03-03 12:00:00

JavaScriptfor 循環(huán)語言

2023-07-18 07:56:20

2022-11-03 07:49:52

JS原生元素

2022-08-16 08:37:09

視頻插幀深度學(xué)習(xí)

2025-07-03 09:56:49

2020-07-22 15:15:28

Vue前端代碼

2022-12-19 14:53:07

模型訓(xùn)練

2011-03-18 09:07:02

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

2012-10-19 10:21:07

數(shù)據(jù)庫負(fù)載均衡mssqlserver

2022-06-16 09:55:58

css輪播圖

2024-05-16 12:03:54

Python代碼開發(fā)

2010-06-02 16:57:50

MySQL數(shù)據(jù)庫同步

2017-02-08 11:00:50

數(shù)據(jù)庫索引類型

2010-06-09 10:09:39

MySQL 數(shù)據(jù)庫導(dǎo)入
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久精品久久久久久 | 欧美日韩高清在线一区 | 日本黄色一级片视频 | 日韩aⅴ在线观看 | 啪啪免费网站 | 超碰欧美| 一级毛片免费看 | 操人视频在线观看 | 天天干狠狠 | 欧美日韩第一页 | 青青久久av北条麻妃海外网 | 日日做夜夜爽毛片麻豆 | 亚洲二区视频 | 午夜欧美一区二区三区在线播放 | 中文字幕成人网 | 亚洲精品在线播放 | 国产成人免费 | 精品综合在线 | 日韩小视频 | 在线一区 | 91av在线免费看 | 91免费入口 | 亚州综合在线 | 欧美日韩在线视频一区二区 | 亚洲国产成人在线观看 | 亚洲一区二区在线视频 | 最新国产精品精品视频 | 99re6热在线精品视频播放 | 日韩第一夜 | www.亚洲区 | 中文在线日韩 | 欧美一区二区三区 | 久久午夜精品福利一区二区 | 欧美不卡一区 | 成人在线免费观看视频 | 日韩中文字幕免费在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 国产一区二区精品在线观看 | 拍拍无遮挡人做人爱视频免费观看 | 无码一区二区三区视频 | 午夜丰满少妇一级毛片 |