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

數(shù)據(jù)庫主從不一致,怎么解?

開發(fā) 開發(fā)工具 前端
在聊數(shù)據(jù)庫與緩存一致性問題之前,先聊聊數(shù)據(jù)庫主庫與從庫的一致性問題。下面,我們一起來看。

[[235723]]

在聊數(shù)據(jù)庫與緩存一致性問題之前,先聊聊數(shù)據(jù)庫主庫與從庫的一致性問題。

問:常見的數(shù)據(jù)庫集群架構(gòu)如何?

答:一主多從,主從同步,讀寫分離。

如上圖:

  • 一個主庫提供寫服務(wù)
  • 多個從庫提供讀服務(wù),可以增加從庫提升讀性能
  • 主從之間同步數(shù)據(jù)

畫外音:任何方案不要忘了本心,加從庫的本心,是提升讀性能。

問:為什么會出現(xiàn)不一致?

答:主從同步有時延,這個時延期間讀從庫,可能讀到不一致的數(shù)據(jù)。

如上圖:

  • 服務(wù)發(fā)起了一個寫請求
  • 服務(wù)又發(fā)起了一個讀請求,此時同步未完成,讀到一個不一致的臟數(shù)據(jù)
  • 數(shù)據(jù)庫主從同步***才完成

畫外音:任何數(shù)據(jù)冗余,必將引發(fā)一致性問題。

問:如何避免這種主從延時導(dǎo)致的不一致?

答:常見的方法有這么幾種。

方案一:忽略

任何脫離業(yè)務(wù)的架構(gòu)設(shè)計都是耍流氓,絕大部分業(yè)務(wù),例如:百度搜索,淘寶訂單,QQ消息,58帖子都允許短時間不一致。

畫外音:如果業(yè)務(wù)能接受,最推崇此法。

如果業(yè)務(wù)能夠接受,別把系統(tǒng)架構(gòu)搞得太復(fù)雜。

方案二:強(qiáng)制讀主

如上圖:

  • 使用一個高可用主庫提供數(shù)據(jù)庫服務(wù)
  • 讀和寫都落到主庫上
  • 采用緩存來提升系統(tǒng)讀性能

這是很常見的微服務(wù)架構(gòu),可以避免數(shù)據(jù)庫主從一致性問題。

方案三:選擇性讀主

強(qiáng)制讀主過于粗暴,畢竟只有少量寫請求,很短時間,可能讀取到臟數(shù)據(jù)。

有沒有可能實現(xiàn),只有這一段時間,可能讀到從庫臟數(shù)據(jù)的讀請求讀主,平時讀從呢?

可以利用一個緩存記錄必須讀主的數(shù)據(jù)。

如上圖,當(dāng)寫請求發(fā)生時:

  • 寫主庫
  • 將哪個庫,哪個表,哪個主鍵三個信息拼裝一個key設(shè)置到cache里,這條記錄的超時時間,設(shè)置為“主從同步時延”

畫外音:key的格式為“db:table:PK”,假設(shè)主從延時為1s,這個key的cache超時時間也為1s。

如上圖,當(dāng)讀請求發(fā)生時:

這是要讀哪個庫,哪個表,哪個主鍵的數(shù)據(jù)呢,也將這三個信息拼裝一個key,到cache里去查詢,如果,

  • cache里有這個key,說明1s內(nèi)剛發(fā)生過寫請求,數(shù)據(jù)庫主從同步可能還沒有完成,此時就應(yīng)該去主庫查詢
  • cache里沒有這個key,說明最近沒有發(fā)生過寫請求,此時就可以去從庫查詢

以此,保證讀到的一定不是不一致的臟數(shù)據(jù)。

總結(jié)

數(shù)據(jù)庫主庫和從庫不一致,常見有這么幾種優(yōu)化方案:

  • 業(yè)務(wù)可以接受,系統(tǒng)不優(yōu)化
  • 強(qiáng)制讀主,高可用主庫,用緩存提高讀性能
  • 在cache里記錄哪些記錄發(fā)生過寫請求,來路由讀主還是讀從

文字很短,不能解決所有問題,但希望能給大家一些啟示。

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2020-07-20 14:06:38

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

2020-11-17 06:42:21

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

2018-07-15 08:18:44

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

2021-12-30 09:32:04

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

2025-04-03 09:51:37

2022-03-16 15:54:52

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

2020-12-24 10:58:42

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

2025-04-08 09:00:00

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

2024-05-11 07:37:43

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

2024-04-07 09:00:00

MySQL

2021-12-26 14:32:11

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

2017-06-20 09:42:52

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

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)

2021-04-18 15:01:56

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

2024-11-18 08:00:00

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

2021-01-19 10:39:03

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

2017-08-25 17:59:41

浮點運算C語言

2022-12-13 08:15:42

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

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

主站蜘蛛池模板: 欧美8一10sex性hd | 91黄在线观看 | 中文字幕乱码一区二区三区 | 国产精品一区二区久久精品爱微奶 | 亚洲一区二区在线视频 | 国产免费人成xvideos视频 | 精品久久久一区 | 欧美视频精品 | 欧美激情亚洲天堂 | 在线观看涩涩视频 | 国产高清在线观看 | 欧美性视频在线播放 | 天天艹天天干天天 | 亚洲视频在线一区 | 69亚洲精品| 无码国模国产在线观看 | 国产精品日韩 | 国产精品一区二区三区在线 | 亚洲传媒在线 | 日韩av在线一区 | 国产日韩视频在线 | 日韩在线播放中文字幕 | 久久久久国产精品一区二区 | 久久精品欧美一区二区三区麻豆 | 亚洲成人精品一区二区 | 亚洲一区二区三区久久久 | 国产精品自产拍 | 在线永久看片免费的视频 | 四虎影院美女 | 久草在线中文888 | 天堂av在线影院 | 久久精品一区二区三区四区 | 在线观看国产 | 午夜黄色影院 | 国产高清一区二区三区 | 狠狠干美女 | 久久国内| 久久精品亚洲精品国产欧美 | 久久小视频 | 日韩免| 久久久久国产一区二区 |