精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

數據庫讀寫分離的這些坑,讓我一臉懵逼!

數據庫 其他數據庫
今天分享一下以前入職現在公司第一次發布項目遇到的一個問題,一個數據庫讀寫分離的坑。

 今天分享一下以前入職現在公司第一次發布項目遇到的一個問題,一個數據庫讀寫分離的坑。

前言

事情是這樣的,剛入職的時候接到了這樣的一個業務需求:

每個支付通道支付失敗的時候都會返回特定的錯誤碼,業務內部需要將通道特定的錯誤碼轉義成內部的錯誤碼,這樣對外就可以統一返回我們自己的錯誤碼。

這個需求其實不難,當時設計的系統架構如下:

新增規則的流程簡單分為三步:

  1.  業務人員通過管理后臺新增映射規則
  2.  數據庫新增、修改這條映射規則
  3.  刪除緩存

這里之所以增加緩存,是因為這個場景每次支付都需要使用,使用緩存可以避免每次都去數據庫讀取,增加讀取速度。

后續支付請求業務流程如下:

數據庫讀寫分離-用戶操作

當緩存內映射規則不存在的時候,將會查詢數據庫,然后加載到緩存中。如果緩存內映射規則已存在,將會直接使用緩存內映射規則。

這個業務流程其實比較簡單,當時在測試環境測試也沒問題,后續發布線上環境的卻碰到奇怪的問題。

「新增規則之后,一段時間內,映射規則并沒有生效。查看日志發現,查詢數據庫的時候,沒有數據。」

這就很奇怪了,日志顯示新增是成功,但是查詢卻沒有數據。但是過了一段時間,再次查詢卻又有了數據。

走查了下代碼,發現并沒有什么問題,第二天上班的時候請教了一下同事,才知道問題的原因:

原來線上的數據庫采用主從架構,數據讀寫分離,數據查詢走的是從庫。數據寫入都是直接操作主庫,后續再同步到從庫。

「由于數據庫同步存在延時,這就導致數據同步的這段時間,主從數據將會不一致,從庫無法查詢到最新的數據。」

如果你之前的數據庫系統架構是單庫或者主備結構,當你第一次轉到數據讀寫分離架構,這個坑大概率也會踩到。

[[357035]]

數據庫系統架構發展

下面我們首先了解一下數據庫系統架構,最后再來看下如何解決主從同步延時的導致數據不一致。

主備架構

業務發展的前期,數據訪問量小,這時我們可以直接采用單庫的架構。

不過我們一般不使用的上面的架構,因為存在單點的問題。若數據庫出現故障,這段期間業務將會不可用。我們除了等待重啟,其他沒什么解決辦法。

所以我們會增加一個備庫,實時同步主庫的數據。

主備架構

一旦「主庫」出了故障,通過人工的方式,手動的將「主機」踢下線,將「備機」改為「主機」來繼續提供服務。

這種架構,部署維護簡單,業務開發也無需任何改造。

不過缺點也很明顯,備庫只有在主庫有問題的時候才會被啟用,存在一定的資源浪費的情況。

主從架構

隨著業務發展,請求量不斷變大,數據量也不斷變大,業務變得更加復雜,很快數據將會到達瓶頸。

由于大多數業務都是讀多寫少,所以數據庫讀的最容易成為系統瓶頸。

這時候我們可以提高讀的性能,這時我們的可以采用的方案,增加從實例,主從同步,數據讀寫分離。

可以看到這個架構與主備沒什么區別,主要區別在于主從架構下,從庫與主庫一樣,時刻需要干活,主庫提供寫服務,從庫只提供讀服務。

如果后續讀的壓力還是太大,我們還可以增加從庫的數量,水平擴充讀的能力。

雖然主從架構幫我們解決讀的瓶頸,但是由于主從之間需要數據同步,這天然就存在一定延時。

在這延時窗口期內,從庫的讀只能讀到一個舊數據,這也是上面案例問題的真正的原因。

[[357039]]

接下來我們來看下有什么辦法可以優化這種情況。

主從延時解決辦法

忍受大法

第一種解決辦法,很簡單,無他,不管他,沒有讀到也沒事。這時業務不需要任何改造,你好,我好,她也好~

[[357040]]

如果業務對于數據一致性要求不高,我們就可以采用這種方案。

數據同步寫方案

主從數據同步方案,一般都是采用的異步方式同步給備庫。

我們可以將其修改為同步方案,主從同步完成,主庫上的寫才能返回。

 

 

  1.  業務系統發起寫操作,數據寫主庫
  2.  寫請求需要等待主從同步完成才能返回
  3.  數據讀從庫,主從同步完成就能讀到最新數據

這種方案,我們只需要修改數據庫之間同步配置即可,業務層無需修改,相對簡單。

「不過,由于主庫寫需要等待主從完成,寫請求的時延將會增加,吞吐量將會降低。」

這一點對于現在在線業務,可能無法接受。

選擇性強制讀主

對于需要強一致的場景,我們可以將其的讀請求都操作主庫,這樣「讀寫都在主庫」,就沒有不一致的情況。

這種方案業務層需要改造一下,將其強制性讀主,相對改造難度較低。

不過這種方案相對于浪費了另一個數據庫,增加主庫的壓力。

中間件選擇路由法

這種方案需要使用一個中間件,所有數據庫操作都先發到中間件,由中間件再分發到相應的數據庫。

這時流程如下:

  1.  寫請求,中間件將會發到主庫,同時記錄一下此時寫請求的 key(操作表加主鍵等)
  2.   讀請求,如果此時 key 存在,將會路由到主庫
  3.  一定時間后(經驗值),中間件認為主從同步完成,刪除這個 key,后續讀將會讀從庫

這種方案,可以保持數據讀寫的一致。

但是系統架構增加了一個中間件,整體復雜度變高,業務開發也變得復雜,學習成本也比較高。

緩存路由大法

這種方案與中間件的方案流程比較類似,不過改造成本相對較低,不需要增加任何中間件。

這時流程如下:

  1.  寫請求發往主庫,同時緩存記錄操作的 key,緩存的失效時間設置為主從的延時
  2.  讀請求首先判斷緩存是否存在
    1.   若存在,代表剛發生過寫操作,讀請求操作主庫
    2.   若不存在,代表近期沒發生寫操作,讀請求操作從庫

這種方案相對中間件的方案成本較低,但是呢我們此時又引入一個緩存組件,所有讀寫之間就又多了一步緩存操作。

總結

我們引入主從架構,數據讀寫分離,目的是為了解決業務快速發展,請求量變大,并發量變大,從而引發的數據庫的讀瓶頸。

不過當引入新一個架構解決問題時,勢必會帶來另外一個問題,數據庫讀寫分離之后,主從延遲從而導致數據不一致的情況。,

為了解決主從延遲,數據不一致的情況,我們可以采用以下這幾種方案:

  1.  忍受大法
  2.  數據庫同步寫方案
  3.  選擇性強制讀主
  4.  中間件選擇路由法
  5.  緩存路由大法

上面的方案都有各自的優點,當然也有相應的缺點,我們需要根據自己的業務情況,選擇相應的解決方案。 

 

責任編輯:龐桂玉 來源: Java后端技術
相關推薦

2021-11-12 06:39:51

Tomcat連接器面試

2020-11-09 08:51:24

6G衛星

2022-09-30 19:32:36

ES面試查詢

2020-08-25 17:50:36

Redis數據庫內存

2022-09-23 18:16:25

KafkaJVM

2020-09-14 12:46:25

過濾器攔截器Filter

2018-01-15 05:54:45

數據庫讀寫分離互聯網

2018-01-09 18:46:44

數據庫架構讀寫分離

2020-12-09 09:58:24

緩存策略面試

2023-01-26 02:16:17

2022-12-15 09:44:29

數據庫利器

2018-10-16 16:45:05

數據庫讀寫分離

2024-09-20 07:38:00

數據庫性能策略

2018-02-24 19:37:33

Java8數據庫中間件

2021-01-06 10:09:38

MySQL

2025-03-10 08:30:00

2017-03-14 13:12:19

2022-12-05 07:51:24

數據庫分庫分表讀寫分離

2017-11-30 15:00:50

面試代碼面試官

2020-12-24 10:58:42

數據庫架構緩存
點贊
收藏

51CTO技術棧公眾號

国产精品高清无码| 182在线视频| а√中文在线8| 成人网在线免费视频| 91国语精品自产拍在线观看性色| 白丝女仆被免费网站| 国产91亚洲精品久久久| 亚洲久草在线视频| 国产精品果冻传媒潘| 6080午夜伦理| 欧美一区综合| 亚洲欧美综合v| 亚洲制服中文字幕| 妞干网免费在线视频| 国产精品免费av| 国产伦精品一区二区三| 在线观看免费高清视频| 亚洲福利国产| 久久久精品中文字幕| 国产毛片久久久久久久| 日韩在线观看一区二区三区| 日韩欧美国产激情| 日韩国产成人无码av毛片| 成人在线观看网站| 北岛玲一区二区三区四区| 国产深夜精品福利| 久久久久99精品成人片我成大片| 久久久久久久久久久9不雅视频| 亚洲美女激情视频| 久久久久亚洲av成人网人人软件| 人人玩人人添人人澡欧美| 福利视频第一区| 18禁裸男晨勃露j毛免费观看| 免费网站成人| 国产精品国产三级国产三级人妇| 欧美日韩电影一区二区| 女人18毛片水真多18精品| 国产呦精品一区二区三区网站| 国产精品h片在线播放| 久久久久久久极品| 尤物网精品视频| 欧美国产日韩一区| 中文字幕人妻一区二| 久久中文字幕二区| 中文字幕精品在线| 中文字幕伦理片| 欧洲福利电影| 亚洲午夜女主播在线直播| 加勒比精品视频| 欧美国产极品| 精品小视频在线| 国产精品无码午夜福利| 亚洲国产欧美日韩在线观看第一区 | 裸体裸乳免费看| 日本欧美在线视频免费观看| 国产精品理论片在线观看| 三区精品视频观看| 91在线高清| 亚洲日本va在线观看| 国产又黄又爽免费视频| 久草资源在线观看| 亚洲精品写真福利| 女人帮男人橹视频播放| 青青青国内视频在线观看软件| 亚洲免费资源在线播放| 欧美黄色免费网址| av中文在线资源库| 一本色道久久综合亚洲精品按摩| 超碰av在线免费观看| 国产一区精品福利| 日韩一区二区三区在线观看| 无码人妻一区二区三区精品视频| 国产人妖ts一区二区| 国产视频久久久| 国产又黄又粗的视频| 99久久.com| 久久91精品国产91久久久| 国产一国产二国产三| 乱人伦精品视频在线观看| 国产精品视频一| 国产成人精品白浆久久69| 成人在线视频首页| 欧美在线一二三区| 国产精品久久久久久福利| 一区二区三区蜜桃网| 激情深爱综合网| 日韩成人在线一区| 欧美va亚洲va| 亚洲天堂岛国片| 国产精品99免费看| 26uuu久久噜噜噜噜| 亚洲一级特黄毛片| 成人国产亚洲欧美成人综合网 | 国产精品视频久久久久| 精品国产一级片| 国产无一区二区| 女人被男人躁得好爽免费视频| 欧美成人性网| 日韩视频免费观看高清在线视频| 国产制服丝袜在线| 亚洲人成免费网站| 日韩av电影院| 亚洲第一成人av| 国产精品视频你懂的| 日韩网站在线免费观看| 久久精品资源| 亚洲精品丝袜日韩| 久久久久久久久久久久久久久久久| 久久中文在线| 国内精品视频在线播放| 欧美日本高清| 91极品视觉盛宴| 欧美无人区码suv| 一精品久久久| 国产精品久久久久免费a∨大胸| 乱精品一区字幕二区| 日韩一区日韩二区| 噼里啪啦国语在线观看免费版高清版| 97超碰成人| 久久视频这里只有精品| 亚洲精品国产欧美在线观看| 9人人澡人人爽人人精品| 成人在线观看毛片| 免费一区二区三区四区| 亚洲欧美国产视频| 日本少妇激情舌吻| 国产精品一区一区| 91制片厂免费观看| 不卡亚洲精品| 亚洲一区999| 丰满人妻老熟妇伦人精品| 成人99免费视频| 男人添女荫道口喷水视频| 国产成年精品| 美日韩精品免费视频| 又骚又黄的视频| 国产欧美一区二区三区沐欲| 国产女女做受ⅹxx高潮| 日韩电影不卡一区| 欧美一区二区三区免费观看| 欧美一区二区在线观看视频| 亚洲精品亚洲人成人网 | 国产视频1区2区| 337p粉嫩大胆噜噜噜噜噜91av| 久久视频这里有精品| 久久精品亚洲成在人线av网址| 欧美精品video| 人妻无码中文字幕| 午夜国产精品一区| 亚洲av无码一区二区三区观看| 亚洲日韩视频| 麻豆91蜜桃| 日本欧美不卡| 按摩亚洲人久久| 超碰在线人人干| 亚洲18色成人| 香蕉网在线播放| 久热国产精品| 亚洲一二三区精品| 国产一区二区三区视频在线| 欧美福利在线观看| 欧美一级淫片aaaaaa| 黑人巨大精品欧美一区二区三区| 亚洲自拍偷拍一区二区| 日韩成人免费看| 大桥未久一区二区| 99ri日韩精品视频| 亚洲3p在线观看| 国产日本在线观看| 欧美精品第一页| 久久精品www人人爽人人| 99久久久免费精品国产一区二区| 欧美日韩国产精品激情在线播放| 精品国产网站| 亚洲一区二区三区成人在线视频精品| 日韩欧美一起| 亚洲人在线观看| 国产精品一级视频| 亚洲高清免费观看高清完整版在线观看| 精品人妻一区二区三区日产| 日本vs亚洲vs韩国一区三区 | www色com| 国产一区亚洲一区| 精品这里只有精品| 色综合咪咪久久网| 国精产品99永久一区一区| 成人软件在线观看| 久久亚洲国产精品| 三级av在线播放| 欧美丰满美乳xxx高潮www| 国产精品第二十页| 欧美激情一区二区在线| 美女被艹视频网站| 噜噜噜在线观看免费视频日韩| 99热一区二区三区| 久久av导航| 国产不卡一区二区三区在线观看| 日本欧美韩国| 午夜精品久久久久久久男人的天堂| av资源网站在线观看| 精品电影一区二区| 一级黄色片在线| 狠狠操狠狠色综合网| 综合五月激情网| 国产女主播视频一区二区| 久久久久亚洲av成人网人人软件| 老司机午夜精品| 97成人在线观看视频| 欧美成人中文| 一区二区不卡在线视频 午夜欧美不卡'| 国产亚洲精品美女久久| 成人午夜在线影院| 电影一区二区| 欧美最近摘花xxxx摘花| 欧美精品videossex少妇| 中文字幕精品网| 国产乱子伦三级在线播放| 精品美女在线播放| 国产精品毛片一区二区在线看舒淇| 狠狠做深爱婷婷久久综合一区| 动漫性做爰视频| 欧美韩日一区二区三区四区| 黄色片视频免费观看| 成人涩涩免费视频| 日本一二三四区视频| 久久精品国产精品亚洲综合| 99精品视频播放| 国产精品尤物| 国产69精品久久久久久久| 国产精品v欧美精品v日本精品动漫| 视频一区二区综合| 国产成人一区| 欧洲久久久久久| 国产成人ay| 日本一区高清不卡| 精品在线播放| 欧美日韩免费高清| 神马影视一区二区| 你懂的网址一区二区三区| 欧美亚视频在线中文字幕免费| 国产精品久久久对白| 69精品国产久热在线观看| 亚洲精品女av网站| 麻豆精品国产| 99久久精品久久久久久ai换脸| 看亚洲a级一级毛片| 亚洲一区二区免费在线| 天堂va欧美ⅴa亚洲va一国产| 亚洲伊人第一页| 天堂精品久久久久| 岛国视频一区| 美女福利一区| 日本一区二区三区免费看| 欧美日韩爱爱| 亚欧精品在线| 91成人免费| 日韩欧美不卡在线| 国产视频一区欧美| www.日本xxxx| 狠狠色综合播放一区二区| 三级黄色片免费看| 成人激情文学综合网| 黄色正能量网站| 中文字幕免费不卡| 国产麻豆视频在线观看| 亚洲一区二区四区蜜桃| 日韩 欧美 中文| 欧美亚一区二区| 国产免费叼嘿网站免费| 精品三级av在线| 日本一级在线观看| 自拍偷拍亚洲在线| 四虎亚洲成人| 日本高清不卡在线| 日韩成人综合网| 精品不卡在线| 日韩精品一区二区久久| 三级在线免费观看| 中文日韩欧美| 欧美美女性视频| 成人美女在线视频| 日韩一区二区a片免费观看| 亚洲日穴在线视频| 欧美一级视频免费观看| 欧美性生活大片视频| www.久久久久久| 亚洲色图综合网| 2024最新电影免费在线观看| 欧美在线视频观看| 偷拍自拍亚洲| 欧美大香线蕉线伊人久久国产精品 | 一区二区三区四区五区视频| 欧美午夜不卡影院在线观看完整版免费| 国产精品沙发午睡系列| 久久精品国产第一区二区三区| 成年女人免费视频| 国产精品高清亚洲| 国产精品一区二区三区四| 欧美高清激情brazzers| 桃花色综合影院| 美日韩丰满少妇在线观看| 欧美日韩大片| 国产精品一区二| 国产精品国产一区| 日av中文字幕| 成人av第一页| 久草视频在线资源站| 在线观看91精品国产入口| 狠狠人妻久久久久久综合麻豆| 中文字幕国产精品| 涩涩av在线| 国产高清精品一区二区三区| 99久久www免费| 国产精品拍拍拍| 久久老女人爱爱| 国产污污视频在线观看| 日韩亚洲电影在线| 男人天堂手机在线| 国产精品夫妻激情| 色老板在线视频一区二区| 4444亚洲人成无码网在线观看| 麻豆精品国产91久久久久久| 亚洲第一香蕉网| 丁香五六月婷婷久久激情| 亚洲av无码一区二区乱子伦| 精品激情国产视频| 欧美国产视频| 中文字幕乱码一区二区三区| 丝瓜av网站精品一区二区| 欧美xxxxx精品| 午夜精品久久久久久久99水蜜桃| 午夜久久久久久久久久| 欧美成人精品激情在线观看| 91精品一区| 精品一区二区成人免费视频 | 亚洲少妇中文字幕| 亚洲美女免费在线| 国产人妻精品一区二区三区| 久久中文久久字幕| 国产亚洲久久| 日韩精品福利片午夜免费观看| 国产一区二区三区不卡在线观看 | 屁屁影院国产第一页| 亚洲国产裸拍裸体视频在线观看乱了| 国产av一区二区三区精品| 久久综合88中文色鬼| 高清一区二区中文字幕| 国产精品88久久久久久妇女| 国产综合色在线| 欧美精品xxxxx| 亚洲国产欧美久久| 一区二区三区四区日本视频| 欧美精品一区二区三区在线四季| 久久av在线| 91香蕉视频污在线观看| 欧美精品精品一区| 四季久久免费一区二区三区四区| 成人三级视频在线观看一区二区| 激情欧美一区| 中文字幕一区二区久久人妻网站| 色综合咪咪久久| 日本在线人成| 粉嫩av一区二区三区免费观看| 亚洲黄页一区| 日韩精品电影一区二区| 欧美在线综合视频| 成年人黄视频在线观看| 国产精品高清一区二区三区| 亚洲乱码久久| 国产黄色大片免费看| 欧美一区二区三区四区视频| 91视频欧美| 日本一区二区三区视频在线播放| 久久99精品视频| 国产小视频在线看| 亚洲午夜精品久久久久久性色| 成人污污www网站免费丝瓜| 欧美大黑帍在线播放| 2023国产精品自拍| 国产伦理一区二区| 97热精品视频官网| 成人动漫免费在线观看| 青娱乐国产精品视频| 欧美日韩在线看| 黄色在线视频网站| 久久婷婷开心| 精品夜夜嗨av一区二区三区| 日本一本高清视频| 中文字幕日韩精品在线| 超碰地址久久| 成人日韩在线视频| 欧美日韩亚洲高清| 九色porny在线| 欧美日韩国产免费一区二区三区| 黑人精品欧美一区二区蜜桃| 4438国产精品一区二区| 久热精品视频在线| 国产欧美一区二区精品久久久| 少妇极品熟妇人妻无码| 欧美视频一区二区三区在线观看 |