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

MySQL 主從,一定會不一致!

開發(fā) 架構 MySQL
今天聊聊數(shù)據(jù)庫主庫與從庫的一致性問題,以及數(shù)據(jù)庫主從不一致時的四種常見優(yōu)化方案。

之前聊了《數(shù)據(jù)庫雙主一致性問題解決方案》,今天聊聊數(shù)據(jù)庫主庫與從庫的一致性問題。

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

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

如上圖:

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

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

主從同步有時延,時延期間讀從庫,主從同步未完成,可能讀到臟數(shù)據(jù)。

圖片圖片

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

問:如何避免這種主從延時導致的不一致?

常見的方法有4種。

方案一:忽略。

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

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

方案二:半同步復制

不一致是因為主從同步有一個時間差,是否能做到,等主從同步完成之后,主庫上的寫請求再返回呢?

這就是大家常說的半同步復制semi-sync。

  • 1. 主庫先執(zhí)行寫操作;
  • 2. 等主從同步完成,寫請求才返回;
  • 3. 讀從庫,就能讀到最新的數(shù)據(jù);

這個方案的優(yōu)點是,利用數(shù)據(jù)庫原生功能,比較簡單。不足是,主庫的寫請求時延會增加,吞吐量會降低。

方案三:強制讀主。

如上圖:

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

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

方案四:選擇性讀主。

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

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

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

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

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

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

如上圖,當讀請求發(fā)生時,這是要讀哪個庫,哪個表,哪個主鍵的數(shù)據(jù)呢,也將這三個信息拼裝一個key,到cache里去查詢,如果:

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

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

總結

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

  • 忽略:業(yè)務可以接受,系統(tǒng)不優(yōu)化;
  • 半同步復制:復用原生能力,犧牲部分性能;
  • 強制讀主:高可用主庫,用緩存提高讀性能;
  • 選擇性讀主:在cache里記錄哪些記錄發(fā)生過寫請求,來路由讀主還是讀從;

知其然,知其所以然。

思路比結論更重要。

責任編輯:趙寧寧 來源: 架構師之路
相關推薦

2024-04-07 09:00:00

MySQL

2022-03-16 15:54:52

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

2023-02-24 08:19:59

MySQL索引失效

2018-07-08 07:38:28

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

2020-07-20 14:06:38

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

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)絡安全法數(shù)據(jù)隱私法網(wǎng)絡安全

2010-06-02 10:53:28

MySQL版本

2021-05-27 18:06:30

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

2021-12-30 09:32:04

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

2013-03-29 11:16:17

2017-08-25 17:59:41

浮點運算C語言

2018-07-15 08:18:44

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

2022-03-18 10:53:49

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

2021-01-19 10:39:03

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

2013-12-13 14:46:55

OSPFMTU鄰接關系

2024-11-18 08:00:00

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

2021-04-18 15:01:56

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

2010-11-17 11:11:44

跳槽
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产 欧美 日韩 一区 | 精品福利在线 | 91 中文字幕| 在线成人福利 | 香蕉久久a毛片 | 在线免费黄色小视频 | 91超碰caoporn97人人 | 欧美看片 | 中文字幕一区二区三区在线观看 | 欧美精品一区二区三区在线播放 | 日韩亚洲欧美综合 | 日韩精品1区2区 | av黄色在线观看 | 欧美日韩亚洲系列 | 美女天天干天天操 | 天天操天天舔 | 91社区在线观看播放 | 国产精品亚洲第一区在线暖暖韩国 | 精品久 | 毛片区| 搞av.com| 91在线视频国产 | 久久久www成人免费精品 | 欧美精品在线播放 | 国产成人精品a视频一区www | 国产成人精品一区二区三 | 青青99 | 久亚州在线播放 | 一区二区三区视频在线免费观看 | 亚洲精品在线观 | 亚洲精品一区二三区不卡 | 麻豆91精品91久久久 | 在线观看av网站永久 | 亚洲精品一区二区在线观看 | 99精品视频一区二区三区 | 国产成人小视频 | 日韩国产欧美视频 | 成人免费观看视频 | japan25hdxxxx日本| 综合久久色 | 超碰在线人 |