精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品一区二区三区不卡| 亚洲人成电影网站色mp4| 欧美极品美女电影一区| 国产极品一区二区| 澳门av一区二区三区| ...中文天堂在线一区| 懂色中文一区二区三区在线视频| 久久久国产高清| 成人一二三区| 亚洲成人黄色在线观看| 一区二区三区 日韩| 日韩伦理av| 久久网站最新地址| 亚洲在线观看视频| 国产一级片免费视频| 你懂的网址国产 欧美| 亚洲免费一在线| 女人扒开双腿让男人捅 | 国产精品久久久久久久久免费丝袜| 亚洲一区二区久久久久久久| 五月婷婷六月婷婷| 亚洲三级电影在线观看| 综合网中文字幕| 一本色道综合久久欧美日韩精品| 97色婷婷成人综合在线观看| 一本色道久久综合亚洲91| 996这里只有精品| 免费在线观看黄| 国产欧美日韩不卡免费| 狠狠久久综合婷婷不卡| 午夜精品在线播放| 韩国欧美国产1区| 国产精品福利久久久| 日本三级2019| 黑丝一区二区| 欧美成人精品激情在线观看| 黄色激情小视频| 啪啪亚洲精品| 亚洲美女视频网站| 少妇户外露出[11p]| 欧美a在线观看| 欧美丰满美乳xxx高潮www| 黄色片在线免费| 欧美国产大片| 91在线观看下载| 亚洲一区二区免费| av天堂一区二区三区| 极品美女销魂一区二区三区| 成人久久精品视频| 国产免费无遮挡| 久久国产精品色| 国产男女猛烈无遮挡91| 这里只有精品999| 毛片不卡一区二区| 成人两性免费视频| 国产精品久久久久久久免费| 狠狠狠色丁香婷婷综合激情| 国产一区二中文字幕在线看| 91精品视频免费在线观看| 美美哒免费高清在线观看视频一区二区| 国产成人一区二区三区小说 | 中文在线手机av| 国产成人欧美日韩在线电影| 91美女福利视频高清| 99国产精品一区二区三区| 国产麻豆成人传媒免费观看| 97se视频在线观看| 欧美一级淫片免费视频魅影视频| 久久av一区二区三区| 午夜精品福利在线观看| 欧美日韩综合在线观看| 午夜在线观看免费一区| 国产精品成人一区| 怡春院在线视频| 国内精品久久久久影院薰衣草| 亚洲sss综合天堂久久| www.日韩高清| 久久夜色精品一区| 亚洲欧洲免费无码| 色婷婷在线播放| 欧美性xxxxxx| 日本中文字幕影院| www.成人网| 亚洲裸体xxxx| 日韩一区二区不卡视频| 亚洲黄色影片| 国产欧美日韩亚洲精品| 精品毛片一区二区三区| 99久久99久久综合| 中文字幕久精品免| 国产乱码精品一区二三赶尸艳谈| 91官网在线免费观看| 无码国产精品一区二区高潮| 日韩美女毛片| 欧美另类第一页| 久久永久免费视频| 懂色av中文字幕一区二区三区 | 国产精品久久久久久久久毛片 | 大奶在线精品| 一本色道久久综合亚洲精品小说 | 亚洲国产精品悠悠久久琪琪 | 日韩av二区| 欧美激情一级欧美精品| 性色av一区二区三区四区| 国产成+人+日韩+欧美+亚洲| 神马欧美一区二区| √天堂8资源中文在线| 欧美美女一区二区三区| 人妻无码一区二区三区| 欧美日韩国产综合网| 国产精品都在这里| 无码国产精品高潮久久99| 国产精品欧美一级免费| 午夜精品久久久久久久无码| 99久久999| 亚洲美女视频网站| 色播视频在线播放| 国产一区二区三区日韩 | 亚乱亚乱亚洲乱妇| 日韩人体视频一二区| 在线观看亚洲免费视频| 亚洲精品tv久久久久久久久久| 国产精品www网站| 天天操天天射天天舔| 亚洲精品视频在线| 国产原创精品在线| 精品成人影院| 奇米4444一区二区三区| 视频在线不卡| 国产一区二区三区四区在线观看| 日韩精品另类天天更新| 色资源二区在线视频| 精品av久久707| 亚洲色图综合区| 国产制服丝袜一区| 亚洲一区三区| 精品久久在线| 色婷婷**av毛片一区| 日韩中文字幕高清| 国产午夜精品理论片a级大结局 | 国产一区二区在线看| 亚洲7777| 国产国产一区| 中文字幕日韩在线视频| 在线观看黄色网| 国产精品久久久久天堂| 国产视频1区2区3区| 成人免费看片39| 国产女精品视频网站免费| 永久免费av片在线观看全网站| 欧美日韩国产一二三| 欧美乱大交做爰xxxⅹ小说| 麻豆精品在线看| 亚洲人一区二区| av在线国产精品| 欧美成人亚洲成人| www.精品视频| 午夜欧美视频在线观看| 疯狂揉花蒂控制高潮h| 另类天堂av| 亚洲人成影视在线观看| 精品午夜av| 久久久久久一区二区三区| 手机看片1024国产| 色偷偷88欧美精品久久久| 男人舔女人下部高潮全视频| 免费黄网站欧美| 亚洲av综合色区| 狠狠一区二区三区| 青草青草久热精品视频在线网站 | 国产在线网站| 欧美日韩精品一区视频| 国产精品九九九九九九| 99久久夜色精品国产网站| 簧片在线免费看| 欧美在线亚洲| 欧美激情一区二区三区在线视频| 久久人人视频| 欧美国产高跟鞋裸体秀xxxhd| 人人妻人人澡人人爽精品日本| 色域天天综合网| 少妇被躁爽到高潮无码文| 99久久综合狠狠综合久久| 99视频在线视频| 欧美日韩一区二区三区四区在线观看 | 精品一卡二卡三卡| 日韩a一区二区| 国产伦一区二区三区色一情| 户外露出一区二区三区| 久久国产精品网站| 美女欧美视频在线观看免费| 在线播放亚洲一区| 久久青青草视频| 亚洲欧美在线aaa| 特级西西人体4444xxxx| 久久99精品久久久久久动态图| 欧美视频在线第一页| 国产成人av| 成人免费视频观看视频| 深夜视频一区二区| 久久久久久国产精品美女| 韩日在线视频| 亚洲成人三级在线| 91九色蝌蚪91por成人| 欧美性xxxx极品hd欧美风情| 老女人性淫交视频| 亚洲国产成人自拍| 亚洲观看黄色网| 国产精品系列在线观看| 天天干天天综合| 国产美女一区| 黄网站色视频免费观看| 久久久久久久久久久9不雅视频| 国产视频一区二区三区四区| 色999韩欧美国产综合俺来也| 欧洲成人午夜免费大片| 欧美wwww| 欧美成人免费播放| 欧美尤物美女在线| 国产亚洲精品va在线观看| 天天干天天色天天| 欧美变态口味重另类| 一级特黄aaa| 欧美在线观看视频一区二区| aaa人片在线| 亚洲va天堂va国产va久| 欧美日韩免费一区二区| 亚洲日本在线视频观看| 国产福利在线导航| 中文字幕一区二区三区四区不卡 | 视频免费一区| 一区二区亚洲精品国产| 你懂的免费在线观看| 日韩av在线免费看| 香蕉视频黄在线观看| 精品国产一区二区三区av性色| 99视频国产精品免费观看a | 91欧美一区二区三区| 蜜桃一区二区三区在线| 校园春色 亚洲色图| 丝袜诱惑亚洲看片| 可以免费在线看黄的网站| 蘑菇福利视频一区播放| 大肉大捧一进一出好爽视频| 国产精品视频久久一区| 1024av视频| 日韩中文字幕区一区有砖一区| 国产a视频免费观看| 久久久精品日韩| 无码人妻丰满熟妇区五十路百度| 香蕉久久国产| 精品久久久久久无码国产| 久久久久国产精品一区二区| 日韩av一二三四| 日韩电影一区二区三区四区| 亚洲免费一级视频| 久久er精品视频| 成人在线短视频| 成人免费视频国产在线观看| 催眠调教后宫乱淫校园| 91网站在线观看视频| 好吊视频在线观看| 国产精品久久久久毛片软件| 538精品在线观看| 亚洲成人动漫av| 欧美黄色一级大片| 欧美精三区欧美精三区| www.色亚洲| 日韩电影免费观看在线观看| 成年人视频在线免费观看| 少妇高潮久久77777| 欧洲一区二区三区| 欧美中文在线免费| 成人污版视频| 国模一区二区三区私拍视频| 欧美猛男同性videos| www.午夜色| 99riav1国产精品视频| 五月婷婷狠狠操| 国产高清不卡一区| 人妻熟女aⅴ一区二区三区汇编| 国产女同互慰高潮91漫画| 黑人巨大精品一区二区在线| 精品福利在线看| 亚洲一区二区三区网站| 欧美精品一区二区三区蜜桃视频| 国产午夜视频在线观看| 欧美日韩国产第一页| 少妇一区视频| 国产欧美一区二区视频| 日韩dvd碟片| 少妇高潮喷水在线观看| 久草在线在线精品观看| 特大黑人巨人吊xxxx| 亚洲女人小视频在线观看| 亚洲图片在线视频| 日韩欧美在线影院| 国产二区在线播放| 91国产精品视频在线| 国产成年精品| 日本中文不卡| 亚洲毛片网站| 亚洲高清视频免费| 国产午夜精品福利| 国产成人精品亚洲男人的天堂| 欧美日韩小视频| 头脑特工队2在线播放| 美女av一区二区| 日韩一区二区三区免费| 精品人伦一区二区三区| 中文精品电影| 免费精品99久久国产综合精品应用| 99国产麻豆精品| 国产福利久久久| 4438成人网| 中文字幕在线视频区| 国产成人精品av在线| 国产毛片久久久| 欧美中文字幕在线观看视频| 99欧美视频| 成年人小视频网站| 久久视频一区二区| 日韩精品在线不卡| 精品精品国产高清a毛片牛牛| 免费网站成人| 成人免费自拍视频| 偷偷www综合久久久久久久| 国产精品视频黄色| 久久久久久久综合色一本| 日韩不卡视频在线| 亚洲国产另类 国产精品国产免费| 丝袜中文在线| 国产精品v欧美精品∨日韩| 亚洲一区二区三区| www.五月天色| 亚洲精品免费播放| www.中文字幕| 久久久综合免费视频| 国产乱人伦精品一区| 国产精品又粗又长| 成人动漫一区二区| 日本熟妇毛耸耸xxxxxx| 日韩成人在线网站| 日本不卡1234视频| 免费av在线一区二区| 欧美中文字幕| 久操视频在线观看免费| 欧美性极品少妇| 九色porny在线| 亚洲一区二区三区乱码aⅴ蜜桃女| 一本一道久久a久久精品蜜桃| 国产精品久久久久久9999| 一区在线观看免费| 精品久久久久久亚洲综合网站| 欧美激情免费视频| 色狼人综合干| 91网址在线播放| 综合亚洲深深色噜噜狠狠网站| 国产富婆一级全黄大片| 欧美激情网友自拍| 神马久久av| a在线观看免费视频| 亚洲免费av网站| 日本美女一级视频| 国产成人精品久久二区二区91| 欧美日韩国产在线观看网站| 999这里有精品| 亚洲影视在线播放| 涩涩视频在线观看免费| 国产精品羞羞答答| 欧美日韩精品免费观看视频完整| 少妇一级淫免费观看| 在线观看精品一区| 超碰免费公开在线| 九九九久久久| 免费高清在线视频一区·| 免费一级全黄少妇性色生活片| 日韩久久精品成人| 亚洲欧美一级| 日韩精品―中文字幕| 国产精品日韩成人| 蜜臀久久精品久久久久| 国产精品电影网站| 精品福利电影| 久久久久亚洲AV成人无在| 精品国产乱子伦一区| 黄瓜视频成人app免费| 日韩中文在线字幕| 久久精品欧美日韩| 好吊视频一二三区| 国产精品黄色av| 在线看片欧美| 国产aaaaaaaaa| 日韩av中文字幕在线播放| 日韩成人在线电影| 免费看的黄色大片| 亚洲女子a中天字幕| 东热在线免费视频| 精品无人乱码一区二区三区的优势| 久久丁香综合五月国产三级网站|