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

被數(shù)據(jù)庫讀寫分離坑了,數(shù)據(jù)不一致怎么解(含5種解法)

數(shù)據(jù)庫 其他數(shù)據(jù)庫
本文分享一下以前入職現(xiàn)在公司第一次發(fā)布項(xiàng)目遇到的一個(gè)問題,一個(gè)數(shù)據(jù)庫讀寫分離的坑。

Hello,大家好!我是樓下小黑哥,我又來了~本文分享一下以前入職現(xiàn)在公司第一次發(fā)布項(xiàng)目遇到的一個(gè)問題,一個(gè)數(shù)據(jù)庫讀寫分離的坑。

前言

事情是這樣的,剛?cè)肼毜臅r(shí)候接到了這樣的一個(gè)業(yè)務(wù)需求:

每個(gè)支付通道支付失敗的時(shí)候都會返回特定的錯(cuò)誤碼,業(yè)務(wù)內(nèi)部需要將通道特定的錯(cuò)誤碼轉(zhuǎn)義成內(nèi)部的錯(cuò)誤碼,這樣對外就可以統(tǒng)一返回我們自己的錯(cuò)誤碼。

這個(gè)需求其實(shí)不難,當(dāng)時(shí)設(shè)計(jì)的系統(tǒng)架構(gòu)如下:

新增規(guī)則的流程簡單分為三步:

  •  業(yè)務(wù)人員通過管理后臺新增映射規(guī)則;
  •  數(shù)據(jù)庫新增、修改這條映射規(guī)則;
  •  刪除緩存。

這里之所以增加緩存,是因?yàn)檫@個(gè)場景每次支付都需要使用,使用緩存可以避免每次都去數(shù)據(jù)庫讀取,增加讀取速度。

后續(xù)支付請求業(yè)務(wù)流程如下:

數(shù)據(jù)庫讀寫分離-用戶操作

當(dāng)緩存內(nèi)映射規(guī)則不存在的時(shí)候,將會查詢數(shù)據(jù)庫,然后加載到緩存中。如果緩存內(nèi)映射規(guī)則已存在,將會直接使用緩存內(nèi)映射規(guī)則。

這個(gè)業(yè)務(wù)流程其實(shí)比較簡單,當(dāng)時(shí)在測試環(huán)境測試也沒問題,后續(xù)發(fā)布線上環(huán)境的卻碰到奇怪的問題。

「新增規(guī)則之后,一段時(shí)間內(nèi),映射規(guī)則并沒有生效。查看日志發(fā)現(xiàn),查詢數(shù)據(jù)庫的時(shí)候,沒有數(shù)據(jù)?!?/p>

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

走查了下代碼,發(fā)現(xiàn)并沒有什么問題,第二天上班的時(shí)候請教了一下同事,才知道問題的原因:

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

「由于數(shù)據(jù)庫同步存在延時(shí),這就導(dǎo)致數(shù)據(jù)同步的這段時(shí)間,主從數(shù)據(jù)將會不一致,從庫無法查詢到最新的數(shù)據(jù)。」

如果你之前的數(shù)據(jù)庫系統(tǒng)架構(gòu)是單庫或者主備結(jié)構(gòu),當(dāng)你第一次轉(zhuǎn)到數(shù)據(jù)讀寫分離架構(gòu),這個(gè)坑大概率也會踩到。

[[359763]]

一、數(shù)據(jù)庫系統(tǒng)架構(gòu)發(fā)展

下面我們首先了解一下數(shù)據(jù)庫系統(tǒng)架構(gòu),最后再來看下如何解決主從同步延時(shí)的導(dǎo)致數(shù)據(jù)不一致。

1、主備架構(gòu)

業(yè)務(wù)發(fā)展的前期,數(shù)據(jù)訪問量小,這時(shí)我們可以直接采用單庫的架構(gòu)。

不過我們一般不使用的上面的架構(gòu),因?yàn)榇嬖趩吸c(diǎn)的問題。若數(shù)據(jù)庫出現(xiàn)故障,這段期間業(yè)務(wù)將會不可用。我們除了等待重啟,其他沒什么解決辦法。

所以我們會增加一個(gè)備庫,實(shí)時(shí)同步主庫的數(shù)據(jù)。

主備架構(gòu)

一旦「主庫」出了故障,通過人工的方式,手動(dòng)的將「主機(jī)」踢下線,將「備機(jī)」改為「主機(jī)」來繼續(xù)提供服務(wù)。

這種架構(gòu),部署維護(hù)簡單,業(yè)務(wù)開發(fā)也無需任何改造。

不過缺點(diǎn)也很明顯,備庫只有在主庫有問題的時(shí)候才會被啟用,存在一定的資源浪費(fèi)的情況。

2、主從架構(gòu)

隨著業(yè)務(wù)發(fā)展,請求量不斷變大,數(shù)據(jù)量也不斷變大,業(yè)務(wù)變得更加復(fù)雜,很快數(shù)據(jù)將會到達(dá)瓶頸。

由于大多數(shù)業(yè)務(wù)都是讀多寫少,所以數(shù)據(jù)庫讀的最容易成為系統(tǒng)瓶頸。

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

可以看到這個(gè)架構(gòu)與主備沒什么區(qū)別,主要區(qū)別在于主從架構(gòu)下,從庫與主庫一樣,時(shí)刻需要干活,主庫提供寫服務(wù),從庫只提供讀服務(wù)。

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

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

在這延時(shí)窗口期內(nèi),從庫的讀只能讀到一個(gè)舊數(shù)據(jù),這也是上面案例問題的真正的原因。

[[359767]]

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

二、主從延時(shí)解決辦法

1、忍受大法

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

[[359768]]

如果業(yè)務(wù)對于數(shù)據(jù)一致性要求不高,我們就可以采用這種方案。

2、數(shù)據(jù)同步寫方案

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

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

  •  業(yè)務(wù)系統(tǒng)發(fā)起寫操作,數(shù)據(jù)寫主庫;
  •  寫請求需要等待主從同步完成才能返回;
  •  數(shù)據(jù)讀從庫,主從同步完成就能讀到最新數(shù)據(jù)。

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

「不過,由于主庫寫需要等待主從完成,寫請求的時(shí)延將會增加,吞吐量將會降低?!?/p>

這一點(diǎn)對于現(xiàn)在在線業(yè)務(wù),可能無法接受。

3、選擇性強(qiáng)制讀主

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

這種方案業(yè)務(wù)層需要改造一下,將其強(qiáng)制性讀主,相對改造難度較低。

不過這種方案相對于浪費(fèi)了另一個(gè)數(shù)據(jù)庫,增加主庫的壓力。

4、中間件選擇路由法

這種方案需要使用一個(gè)中間件,所有數(shù)據(jù)庫操作都先發(fā)到中間件,由中間件再分發(fā)到相應(yīng)的數(shù)據(jù)庫。

這時(shí)流程如下:

  •  寫請求,中間件將會發(fā)到主庫,同時(shí)記錄一下此時(shí)寫請求的 key(操作表加主鍵等);
  •  讀請求,如果此時(shí) key 存在,將會路由到主庫;
  •  一定時(shí)間后(經(jīng)驗(yàn)值),中間件認(rèn)為主從同步完成,刪除這個(gè) key,后續(xù)讀將會讀從庫。

這種方案,可以保持?jǐn)?shù)據(jù)讀寫的一致。

但是系統(tǒng)架構(gòu)增加了一個(gè)中間件,整體復(fù)雜度變高,業(yè)務(wù)開發(fā)也變得復(fù)雜,學(xué)習(xí)成本也比較高。

5、緩存路由大法

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

這時(shí)流程如下:

  •  寫請求發(fā)往主庫,同時(shí)緩存記錄操作的 key,緩存的失效時(shí)間設(shè)置為主從的延時(shí);
  •  讀請求首先判斷緩存是否存在:

          若存在,代表剛發(fā)生過寫操作,讀請求操作主庫;

          若不存在,代表近期沒發(fā)生寫操作,讀請求操作從庫。

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

三、總結(jié)

我們引入主從架構(gòu),數(shù)據(jù)讀寫分離,目的是為了解決業(yè)務(wù)快速發(fā)展,請求量變大,并發(fā)量變大,從而引發(fā)的數(shù)據(jù)庫的讀瓶頸。

不過當(dāng)引入新一個(gè)架構(gòu)解決問題時(shí),勢必會帶來另外一個(gè)問題,數(shù)據(jù)庫讀寫分離之后,主從延遲從而導(dǎo)致數(shù)據(jù)不一致的情況。

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

  •  忍受大法;
  •  數(shù)據(jù)庫同步寫方案;
  •  選擇性強(qiáng)制讀主;
  •  中間件選擇路由法;
  •  緩存路由大法。

上面的方案都有各自的優(yōu)點(diǎn),當(dāng)然也有相應(yīng)的缺點(diǎn),我們需要根據(jù)自己的業(yè)務(wù)情況,選擇相應(yīng)的解決方案。 

 

責(zé)任編輯:龐桂玉 來源: DBAplus社群
相關(guān)推薦

2020-07-20 14:06:38

數(shù)據(jù)庫主從同步服務(wù)

2018-07-08 07:38:28

數(shù)據(jù)庫緩存數(shù)據(jù)

2018-07-15 08:18:44

緩存數(shù)據(jù)庫數(shù)據(jù)

2025-04-08 09:00:00

數(shù)據(jù)庫緩存架構(gòu)

2024-05-11 07:37:43

數(shù)據(jù)Redis策略

2020-11-17 06:42:21

MySQL數(shù)據(jù)庫開源

2017-06-20 09:42:52

網(wǎng)絡(luò)安全法數(shù)據(jù)隱私法網(wǎng)絡(luò)安全

2022-02-23 09:17:09

數(shù)據(jù)庫分離變更

2021-12-30 09:32:04

緩存數(shù)據(jù)庫數(shù)據(jù)

2021-12-26 14:32:11

緩存數(shù)據(jù)庫數(shù)據(jù)

2022-03-16 15:54:52

MySQL數(shù)據(jù)format

2019-08-07 10:25:41

數(shù)據(jù)庫緩存技術(shù)

2021-05-27 18:06:30

MySQL編碼數(shù)據(jù)

2022-03-18 10:53:49

數(shù)據(jù)系統(tǒng)架構(gòu)

2024-11-18 08:00:00

數(shù)據(jù)倉庫通用語義層商業(yè)智能

2021-04-18 15:01:56

緩存系統(tǒng)數(shù)據(jù)

2021-01-19 10:39:03

Redis緩存數(shù)據(jù)

2025-04-03 09:51:37

2023-09-13 13:05:01

Java項(xiàng)目

2022-12-13 08:15:42

緩存數(shù)據(jù)競爭
點(diǎn)贊
收藏

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

国产精品美女久久久久aⅴ国产馆| 精品99久久久久成人网站免费 | 欧美一级一片| 中文字幕五月欧美| 日韩免费黄色av| 国产精品一区在线免费观看| 乱子伦一区二区三区| 日韩有码一区| 亚洲国产视频在线| 国产福利精品视频| 少妇特黄一区二区三区| 国产精品论坛| 亚洲成人原创| 亚洲第一精品久久忘忧草社区| 国产一二三四区在线观看| 夜夜躁很很躁日日躁麻豆| 欧美在线免费看视频| 日本精品免费观看高清观看| 久久精品欧美| 人妻 日韩精品 中文字幕| 五月国产精品| 日韩一级免费一区| 日本精品福利视频| 亚洲乱码在线观看| 中文字幕免费一区二区| 日韩一区和二区| 丁香婷婷激情网| 日本中文字幕在线视频| 韩国成人在线视频| 九九精品视频在线观看| 国产av一区二区三区传媒| 欧美韩日亚洲| 久久婷婷色综合| 国产精品va在线播放| 亚洲色图第四色| 91精品福利观看| 一区二区三区久久久| 国产免费一区| 黄色污污网站在线观看| 日韩高清欧美| 日韩手机在线导航| 亚洲这里只有精品| 宅男在线观看免费高清网站| 成人av电影在线观看| 热久久这里只有| 日本女人性生活视频| 日本精品在线播放| 黄色精品一区二区| 日韩资源av在线| 国产精品无码一区| 综合av在线| 久久久久999| 亚洲一区二区三区综合| 巨胸喷奶水www久久久免费动漫| 一区二区中文视频| 在线国产精品网| 欧美一级一区二区三区| 久久一区欧美| 欧美精品一区二区三区国产精品| 欧亚乱熟女一区二区在线| 偷拍视频一区二区三区| 亚洲色图欧美偷拍| 欧美凹凸一区二区三区视频 | 超碰porn在线| 成人av电影在线| 国产精品视频免费一区| 久久久蜜桃一区二区| 性色一区二区三区| 欧美精品在线网站| 欧美成人手机视频| 黑丝美女一区二区| 欧美一区二区在线免费观看| 国产精品秘入口18禁麻豆免会员| 在线观看麻豆蜜桃| 99久久777色| 91九色蝌蚪国产| 探花视频在线观看| 欧美日韩第一区| 伊是香蕉大人久久| 久久久久国产精品无码免费看| 国产在线播放精品| 欧美一区在线视频| 无码人妻一区二区三区在线| 欧美久久精品| 神马久久桃色视频| 免费看污片网站| 成功精品影院| 日韩午夜在线影院| 亚洲图片综合网| 国产乱码精品一区二区亚洲| 精品国偷自产在线视频| 国产在线观看99| 99热国内精品永久免费观看| 国产亚洲欧洲黄色| www.久久国产| 99欧美视频| 欧美亚洲第一区| 天天操天天干视频| 欧美久久99| 日本午夜在线亚洲.国产| 91美女精品网站| 美洲天堂一区二卡三卡四卡视频 | 国产制服丝袜一区| 国产成人精品优优av| 国产精品人人妻人人爽| 久久精品国产一区二区三区免费看| 欧洲午夜精品久久久| 亚洲天堂视频网| 91一区在线观看| 日韩不卡一二区| 国产综合色区在线观看| 欧美性精品220| 日韩av片在线看| 国产午夜亚洲精品一级在线| 制服.丝袜.亚洲.另类.中文 | 国产一区二区三区在线观看精品 | 激情文学一区| 成人在线小视频| 成人p站proumb入口| www一区二区| 麻豆91av| 激情网站在线| 一区二区三区丝袜| 国产女教师bbwbbwbbw| 成人国产精品一区二区免费麻豆| 欧美视频一区二区| 色一情一区二区三区| 久久日本片精品aaaaa国产| 在线成人小视频| 女人高潮一级片| 欧美久久一区二区三区| 精品国产99国产精品| 国产chinese中国hdxxxx| 日韩在线观看| 国产精品小说在线| 国产片高清在线观看| 国产mv日韩mv欧美| 久久精品国产99精品国产亚洲性色| 久草资源在线| 亚洲成人av福利| 亚洲av无码久久精品色欲| 999久久精品| 欧美精品在线网站| 99热这里只有精品66| 成人免费观看av| 欧美日韩在线精品一区二区三区| 尤物网址在线观看| 在线免费亚洲电影| 色姑娘综合天天| 欧亚精品一区| 97超碰色婷婷| 国产精品毛片久久久久久久av| 国产欧美1区2区3区| 亚洲爆乳无码精品aaa片蜜桃| 中文字幕综合| 久久成人一区二区| 日韩电影在线观看一区二区| 91在线视频18| 日韩av资源在线| 国产精品白丝久久av网站| 俺也去精品视频在线观看| 久久久久久激情| 日本aⅴ亚洲精品中文乱码| 亚洲综合国产精品| 国产高清视频在线观看| 亚洲伊人色欲综合网| 久久久无码人妻精品无码| 国产成人1区| 国产精品久久久久久中文字 | 亚洲国内精品视频| 中文字幕人妻一区二区三区在线视频| 一本一本久久a久久综合精品| 91免费国产网站| 婷婷丁香在线| 欧美日韩国产一级| 久久国产精品无码一级毛片| 久久中文视频| 日本成人在线视频网址| 国产一区精品| 精品久久久久久久久久久久| 90岁老太婆乱淫| 九色综合狠狠综合久久| 日本一区二区久久精品| 成人免费网站观看| 亚洲色图偷窥自拍| 日韩精品一区二区在线播放 | 香蕉视频网站在线观看| 欧美一级高清片| 国产精品老女人| 日韩毛片精品高清免费| 国产乱了高清露脸对白| 日本美女视频一区二区| 久久亚洲国产成人精品无码区| 成人日韩av| 欧美多人爱爱视频网站| 99视频免费看| 欧美日韩国产中文字幕| 人妻换人妻a片爽麻豆| 欧美精品网站| 日产精品久久久一区二区| 96sao精品免费视频观看| 亚洲91精品在线观看| 亚洲AV午夜精品| 色综合久久综合网| 无码人妻精品一区二区三应用大全| 日本在线不卡视频一二三区| 久久久久久久香蕉| 日韩欧美国产精品综合嫩v| 国产精品一区二区a| 亚洲欧美综合久久久久久v动漫| 91精品国产高清久久久久久久久 | 午夜私人影院久久久久| 久久久男人的天堂| 青青青伊人色综合久久| 麻豆tv在线播放| 欧美网色网址| 91超碰在线免费观看| 日本无删减在线| 日日骚久久av| 国产在线播放av| 亚洲国产精品小视频| 精品国产av一区二区三区| 一区二区三区四区五区视频在线观看 | 日本综合字幕| 97久久伊人激情网| 18videosex性欧美麻豆| 日日骚av一区| 69久久久久| 国产亚洲综合久久| 免费在线国产| 在线欧美一区二区| 特黄视频免费看| 天天av天天翘天天综合网| 久久久夜色精品| 亚洲精品一卡二卡| 国产xxxx视频| 粉嫩嫩av羞羞动漫久久久| 麻豆传媒在线看| 国产一区二区三区日韩| 中文字幕线观看| 精品亚洲成a人| www.午夜av| 日韩一级免费| 午夜精品短视频| 国产精品一线天粉嫩av| 欧美不卡三区| 国产a久久精品一区二区三区 | 国外av在线| 一区二区三区国产视频| 成人欧美亚洲| 色婷婷**av毛片一区| 午夜视频成人| 欧美成aaa人片免费看| 日本在线视频www鲁啊鲁| 欧美丰满老妇厨房牲生活| 青青草原国产在线| 国内精品久久久久久久| 国产系列在线观看| 尤物tv国产一区| 国产激情视频在线观看| 九九综合九九综合| 黄色污网站在线观看| 国产成人在线一区| 日本午夜精品久久久久| 欧美一区二区.| **在线精品| 国产精品在线看| 6080成人| 成人免费自拍视频| 韩国成人漫画| 欧美激情一区二区三区高清视频 | 91av视频在线| 国产精品成人国产| 国产在线a不卡| 日韩成人av电影| 国产精品一区二区性色av| 亚洲男女网站| 国产三区二区一区久久| 国产亚洲欧美日韩在线观看一区二区 | 日韩精品免费| 成年女人18级毛片毛片免费| 久久一区二区三区电影| 老司机激情视频| 老司机精品久久| 成年人性生活视频| 91亚洲精品乱码久久久久久蜜桃 | 日韩亚洲视频在线观看| 日韩欧美中文字幕公布| 天天色天天操天天射| 日韩精品一区二区三区视频| 国产精品嫩草影院精东| 精品国产一区二区亚洲人成毛片| 蜜桃视频在线观看网站| 久久综合久中文字幕青草| 国产传媒在线观看| 成人www视频在线观看| 久久久久观看| 精品国产一区二区三区日日嗨| 欧美三级一区| 奇米视频888战线精品播放| 欧美 亚欧 日韩视频在线| 欧美性受xxxx黑人猛交88| 一本一本久久| 999热精品视频| 国产欧美精品国产国产专区 | 久久99精品久久久久久水蜜桃 | 欧美 日韩 激情| 亚洲高清二区| 欧美精品久久久久久久久25p| 成人黄色av网站在线| √天堂中文官网8在线| 一区二区三区四区蜜桃| 中文区中文字幕免费看| 欧美三级日韩三级| 亚洲手机在线观看| 日韩精品免费在线播放| 国产在线观看黄| 欧美激情啊啊啊| www.欧美视频| 少妇特黄a一区二区三区| 亚洲免费影院| 波多野结衣视频播放| 一区二区国产视频| 97国产精品久久久| 中文字幕不卡av| 九色porny在线| 国产精品视频精品| 蜜乳av综合| 在线一区亚洲| 日韩av一级电影| 国产一二三四五区| 亚洲素人一区二区| 久久午夜鲁丝片| 亚洲欧美国产一本综合首页| 成全电影播放在线观看国语| 88国产精品欧美一区二区三区| 久久精品国产亚洲5555| 久久久久久久久久久综合| 国产精品一区二区视频| 变态另类丨国产精品| 亚洲成人免费看| 免费看黄色一级视频| 欧美激情在线一区| 给我免费播放日韩视频| 国模无码视频一区二区三区| 97久久超碰国产精品| 日韩精品在线不卡| 亚洲美女性视频| 亚洲精品国产嫩草在线观看| 日本欧洲国产一区二区| 日本伊人精品一区二区三区观看方式| 无码 人妻 在线 视频| 欧美日韩一区二区在线观看| 香港伦理在线| 97人人模人人爽人人少妇| 女人天堂亚洲aⅴ在线观看| 丰满少妇xbxb毛片日本| 五月天欧美精品| 国产1区2区3区在线| 国产欧美日韩中文字幕| 中文av一区| 精品1卡二卡三卡四卡老狼| 欧美日韩亚洲视频| 川上优的av在线一区二区| 成人黄色片网站| 一区在线播放| 男女做爰猛烈刺激| 在线电影欧美成精品| 第一福利在线视频| 日本在线观看一区| 国产一区91精品张津瑜| 国产黄色片视频| 在线播放国产精品| 精品午夜av| 人妻内射一区二区在线视频| 国产精品乱码人人做人人爱| www.五月婷| 国产成人精品网站| 欧美91大片| 国产免费一区二区三区网站免费| 欧美一区二区在线看| 少妇视频在线观看| 国产综合18久久久久久| 日韩高清不卡在线| 女~淫辱の触手3d动漫| 欧美色涩在线第一页| 欧美xxxbbb| 午夜精品区一区二区三 | www在线观看免费视频| 91精品一区二区三区在线观看| 91色在线看| 国产精品久久九九| 欧美亚洲免费| 国产极品国产极品| 日韩欧美自拍偷拍| 日本不卡一二三| bt天堂新版中文在线地址| 国产三级一区二区| 波多野结衣黄色| 久久久久亚洲精品国产|