最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL讀寫(xiě)分離延遲之讀庫(kù)不是主庫(kù)的實(shí)時(shí)鏡像

 更新時(shí)間:2026年07月16日 10:09:22   作者:Dicky張  
復(fù)制延遲常讓用戶(hù)看到舊數(shù)據(jù),尤其是在訂單、權(quán)限和AI任務(wù)狀態(tài)里,這篇文章主要介紹了MySQL讀寫(xiě)分離延遲之讀庫(kù)不是主庫(kù)的實(shí)時(shí)鏡像的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

讀寫(xiě)分離是后端架構(gòu)常見(jiàn)優(yōu)化:寫(xiě)走主庫(kù),讀走從庫(kù),降低主庫(kù)壓力。但讀庫(kù)不是主庫(kù)的實(shí)時(shí)鏡像。復(fù)制延遲一旦出現(xiàn),用戶(hù)剛寫(xiě)完數(shù)據(jù)馬上讀,就可能讀到舊值。這個(gè)問(wèn)題在訂單、權(quán)限、配置、AI 任務(wù)狀態(tài)里都很敏感。

讀寫(xiě)分離不能只看吞吐,還要設(shè)計(jì)一致性體驗(yàn)。

一、復(fù)制延遲是常態(tài)風(fēng)險(xiǎn)

sequenceDiagram
  participant App
  participant Primary
  participant Replica
  App->>Primary: Write
  Primary-->>App: Success
  Primary->>Replica: Replication
  App->>Replica: Read
  Replica-->>App: Old Data

寫(xiě)成功只代表主庫(kù)提交,不代表從庫(kù)已經(jīng)追上。延遲可能來(lái)自大事務(wù)、網(wǎng)絡(luò)、從庫(kù) IO 或 SQL 線(xiàn)程壓力。

二、關(guān)鍵讀走主庫(kù)

寫(xiě)后立刻讀的場(chǎng)景,可以短時(shí)間走主庫(kù)。

read_policy:
  after_write_window: 3s
  critical_resource: primary
  normal_list_page: replica

不是所有讀都要強(qiáng)一致。關(guān)鍵是把需要強(qiáng)一致的場(chǎng)景識(shí)別出來(lái)。

三、監(jiān)控復(fù)制延遲

SHOW REPLICA STATUS;

關(guān)注 Seconds_Behind_Source 只是開(kāi)始,還要結(jié)合 relay log、IO thread、SQL thread 狀態(tài)。延遲指標(biāo)也要進(jìn)入應(yīng)用路由策略。

四、任務(wù)狀態(tài)別亂走讀庫(kù)

AI 后臺(tái)任務(wù)狀態(tài)、支付狀態(tài)、權(quán)限變更這類(lèi)強(qiáng)依賴(lài)最新值的讀,不適合默認(rèn)走從庫(kù)。否則用戶(hù)會(huì)看到任務(wù)完成后頁(yè)面還顯示處理中。

strong_read_tables:
  - payment_order
  - ai_job_status
  - user_permission

架構(gòu)上可以給 DAO 或 repository 標(biāo)記一致性等級(jí),而不是讓業(yè)務(wù)代碼隨手選數(shù)據(jù)源。

還可以在寫(xiě)入后設(shè)置短期一致性標(biāo)記。比如用戶(hù)剛更新資料,接下來(lái)幾秒內(nèi)該用戶(hù)相關(guān)讀取走主庫(kù)。這樣不必讓所有請(qǐng)求都走主庫(kù),也能保護(hù)寫(xiě)后讀體驗(yàn)。

read_after_write:
  key: user_id
  ttl: 3s
  route: primary

這種策略要謹(jǐn)慎控制范圍,否則會(huì)把主庫(kù)讀壓力重新打滿(mǎn)。

五、總結(jié)

MySQL 讀寫(xiě)分離能提升讀能力,但讀庫(kù)不是主庫(kù)實(shí)時(shí)鏡像。寫(xiě)后讀、任務(wù)狀態(tài)、權(quán)限、支付等場(chǎng)景要考慮強(qiáng)一致讀取。

讀寫(xiě)分離不是把所有 SELECT 扔給從庫(kù)。知道哪些讀不能分,才是成熟架構(gòu)。

復(fù)制延遲不可怕,可怕的是業(yè)務(wù)假裝它不存在。把一致性等級(jí)顯式寫(xiě)進(jìn)代碼,團(tuán)隊(duì)才知道自己在做什么取舍。

讀路由還要支持緊急切換。當(dāng)從庫(kù)延遲超過(guò)閾值時(shí),關(guān)鍵讀自動(dòng)回主庫(kù),普通讀可以降級(jí)或提示稍后刷新。

replica_lag_policy:
  warn_at: 1s
  strong_read_to_primary_at: 2s
  disable_replica_at: 5s

這會(huì)增加主庫(kù)壓力,所以閾值要謹(jǐn)慎。但沒(méi)有策略,就只能在事故中手動(dòng)改配置。

還要給用戶(hù)體驗(yàn)留解釋。比如剛提交的配置還在同步中,可以提示“更新已保存,部分頁(yè)面可能稍后刷新”。這比讓用戶(hù)看到舊數(shù)據(jù)卻沒(méi)有解釋更好。

user_feedback:
  write_success: "已保存"
  replica_lag_hint: "數(shù)據(jù)同步中,請(qǐng)稍后刷新"
  force_primary_for_detail: true

當(dāng)然,支付、權(quán)限、任務(wù)狀態(tài)這類(lèi)核心鏈路不要靠提示解決,應(yīng)該直接強(qiáng)一致讀取。提示只能用于低風(fēng)險(xiǎn)體驗(yàn)場(chǎng)景。

到此這篇關(guān)于MySQL讀寫(xiě)分離延遲之讀庫(kù)不是主庫(kù)的實(shí)時(shí)鏡像的文章就介紹到這了,更多相關(guān)MySQL 讀寫(xiě)分離延遲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 有關(guān)mysql中ROW_COUNT()的小例子

    有關(guān)mysql中ROW_COUNT()的小例子

    mysql中的ROW_COUNT()可以返回前一個(gè)SQL進(jìn)行UPDATE,DELETE,INSERT操作所影響的行數(shù)
    2013-02-02
  • 阿里云Centos 7.5安裝Mysql的教程

    阿里云Centos 7.5安裝Mysql的教程

    這篇文章主要介紹了阿里云Centos 7.5安裝Mysql的教程,需要的朋友可以參考下
    2017-07-07
  • MYSQL查詢(xún)結(jié)果實(shí)現(xiàn)發(fā)送給客戶(hù)端

    MYSQL查詢(xún)結(jié)果實(shí)現(xiàn)發(fā)送給客戶(hù)端

    這篇文章主要介紹了MYSQL查詢(xún)結(jié)果實(shí)現(xiàn)發(fā)送給客戶(hù)端方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • Mysql實(shí)現(xiàn)合并多個(gè)分組(GROUP_CONCAT及其平替函數(shù))

    Mysql實(shí)現(xiàn)合并多個(gè)分組(GROUP_CONCAT及其平替函數(shù))

    MySQL 中提供了多種合并字符串的函數(shù)和操作方法,包括 GROUP_CONCAT、CONCAT_WS 和 CONCAT 等,本文介紹了 MySQL 中 GROUP_CONCAT 函數(shù)以及 CONCAT_WS、CONCAT 函數(shù)并通過(guò)示例代碼演示了它們的用法,感興趣的可以了解一下
    2023-10-10
  • mysql8.0.20數(shù)據(jù)目錄遷移的方法

    mysql8.0.20數(shù)據(jù)目錄遷移的方法

    這篇文章主要介紹了mysql8.0.20數(shù)據(jù)目錄遷移的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • SQL觸發(fā)器定義與使用

    SQL觸發(fā)器定義與使用

    SQL的觸發(fā)器和存儲(chǔ)過(guò)程一樣,都是嵌入到SQL中的一段程序,是SQL中管理數(shù)據(jù)的有力工具,本文給大家詳細(xì)介紹SQL觸發(fā)器的定義語(yǔ)法知識(shí),感興趣的朋友一起看看吧
    2023-01-01
  • mysql 5.7.24 壓縮包安裝配置方法圖文教程

    mysql 5.7.24 壓縮包安裝配置方法圖文教程

    這篇文章主要介紹了mysql 5.7.24 壓縮包安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Mac下忘記mysql密碼重新設(shè)置密碼的圖文教程

    Mac下忘記mysql密碼重新設(shè)置密碼的圖文教程

    這篇文章主要介紹了Mac下忘記mysql密碼重新設(shè)置密碼的教程,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • mysql之set與enum的介紹

    mysql之set與enum的介紹

    本篇文章是對(duì)mysql中的set與enum進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • mysql存儲(chǔ)過(guò)程用法實(shí)例分析

    mysql存儲(chǔ)過(guò)程用法實(shí)例分析

    這篇文章主要介紹了mysql存儲(chǔ)過(guò)程用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了mysql存儲(chǔ)過(guò)程的概念、功能、定義、執(zhí)行、調(diào)用等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03

最新評(píng)論

葫芦岛市| 盖州市| 新余市| 兴和县| 珠海市| 名山县| 合阳县| 龙井市| 邵武市| 东兴市| 盐亭县| 米林县| 巫山县| 龙川县| 长海县| 栾城县| 华容县| 穆棱市| 岗巴县| 江安县| 新津县| 明星| 盈江县| 昭通市| 宜州市| 高密市| 襄垣县| 湖北省| 宝应县| 叶城县| 望江县| 双流县| 台东县| 北票市| 大新县| 镇安县| 南城县| 乌鲁木齐县| 延边| 成武县| 成都市|