日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Mysql讀寫分離過期常用解決方案

瀏覽:28日期:2023-10-11 14:55:54

mysql讀寫分離的坑

讀寫分離的主要目標是分攤主庫的壓力,由客戶端選擇后端數(shù)據(jù)庫進行查詢。還有種架構(gòu)就是在MYSQL和客戶端之間有一個中間代理層proxy,客戶端之連接proxy,由proxy根據(jù)請求類型和上下文決定請求的分發(fā)路由。

客戶端直連方案:因為少了一層proxy轉(zhuǎn)發(fā),所以查詢性能稍微好一點兒,并且整體架構(gòu)簡單,排查問題更方便。但是這種方案,由于要了解后端部署細節(jié),所以在出現(xiàn)主備切換、庫遷移等操作的時候,客戶端都會感知到,并且需要調(diào)整數(shù)據(jù)庫連接信息。 帶proxy架構(gòu):對客戶端比較友好。客戶端不需要關注后端細節(jié),連接維護、后端信息維護等工作,都是由proxy完成的。但這樣的話,對后端維護團隊的要求會更高。

無論使用哪種架構(gòu),由于主從可能存在延遲,客戶端執(zhí)行完一個更新事務后馬上發(fā)起查詢,如果查詢選擇的是從庫的話,就有可能讀到剛剛的事務更新之前的狀態(tài)。這種“在從庫上會讀到系統(tǒng)的一個過期狀態(tài)”的現(xiàn)象,我們暫且稱之為“過期讀”。

方案一:強制走主庫方案

將查詢請求分為兩類:

對于必須要拿到最新結(jié)果的請求,強制將其發(fā)到主庫上。比如,在一個交易平臺上,賣家發(fā)布商品以后,馬上要返回主頁面,看商品是否發(fā)布成功。那么,這個請求需要拿到最新的結(jié)果,就必須走主庫。 對于可以讀到舊數(shù)據(jù)的請求,才將其發(fā)到從庫上。在這個交易平臺上,買家來逛商鋪頁面,就算晚幾秒看到最新發(fā)布的商品,也是可以接受的。那么,這類請求就可以走從庫。這個方案的最大問題在于會碰到所有查詢都不是“過期讀”的需求,比如金融類業(yè)務,這樣就要放棄讀寫分離,所有的壓力都在主庫。采用以下方案。

方案二:Sleep方案

主庫更新后,讀從庫之前先sleep一下,類似執(zhí)行了select sleep(1)命令,這個方案的假設是,大多數(shù)情況下主備延遲在1秒之內(nèi),做一個sleep可以有很大概率拿到最新的數(shù)據(jù)。

以賣家發(fā)布商品為例,商品發(fā)布后,用Ajax直接把客戶端輸入的內(nèi)容作為“新的商品”顯示在頁面上,而不是真正地去數(shù)據(jù)庫做查詢。這樣,賣家就可以通過這個顯示,來確認產(chǎn)品已經(jīng)發(fā)布成功了。等到賣家再刷新頁面,去查看商品的時候,其實已經(jīng)過了一段時間,也就達到了sleep的目的,進而也就解決了過期讀的問題。

方案三:判斷主備無延遲方案:

第一種方法:先用show slave status結(jié)果里的seconds_behind_master參數(shù)的值,可以用來衡量主備延遲時間的長短。先判斷這個參數(shù)值是否為0,如果不為0,必須等到這個參數(shù)變?yōu)?才能執(zhí)行請求。

第二種方法:對比位點確保主備無延遲。

Master_Log_File和Read_Master_Log_Pos,表示的是讀到的主庫的最新位點; Relay_Master_Log_File和Exec_Master_Log_Pos,表示的是備庫執(zhí)行的最新位點。

如果Master_Log_File和Relay_Master_Log_File、Read_Master_Log_Pos和Exec_Master_Log_Pos這兩組值完全相同,就表示接收到的日志已經(jīng)同步完成。

第三種方法:對比GTID(全局事物ID)確保主備無延遲

Auto_Position=1 ,表示這對主備關系使用了GTID協(xié)議。 Retrieved_Gtid_Set,是備庫收到的所有日志的GTID集合; Executed_Gtid_Set,是備庫所有已經(jīng)執(zhí)行完成的GTID集合。

如果這兩個集合相同,表示備庫接收到的日志都已經(jīng)同步完成。

方案四:等主庫位點方案

select master_pos_wait(file, pos[, timeout]);

這條命令是在從庫執(zhí)行的 ,參數(shù)file和pos指的是主庫上的文件名和位置,timeout表示這個函數(shù)最多等待N秒。

這個命令正常返回的結(jié)果是一個正整數(shù)M,表示從命令開始執(zhí)行,到應用完file和pos表示的binlog位置,執(zhí)行了多少事務。 如果備庫同步線程發(fā)生異常,則返回null 如果等待超過N秒,就返回-1 如果剛開始執(zhí)行就發(fā)現(xiàn)已經(jīng)執(zhí)行過了,則返回0

Mysql讀寫分離過期常用解決方案

如圖:先執(zhí)行trx1,再執(zhí)行一個查詢請求的邏輯,要保證能夠查到正確的數(shù)據(jù),我們可以使用

這個邏輯

1. trx1事物更新完成后,馬上執(zhí)行show master status得到當前主庫執(zhí)行到的File和Position;

2. 選定一個從庫執(zhí)行查詢語句;

3. 在從庫上執(zhí)行select master_pos_wait(File, Position, 1);

4. 如果返回值是>=0的正整數(shù),則在這個從庫執(zhí)行查詢語句;

5. 否則,到主庫執(zhí)行查詢語句。

這里我們假設,這條select查詢最多在從庫上等待1秒。那么,如果1秒內(nèi)master_pos_wait返回一個大于等于0的整數(shù),就確保了從庫上執(zhí)行的這個查詢結(jié)果一定包含了trx1的數(shù)據(jù)。

5到主庫執(zhí)行查詢語句,是這類方案常用的退化機制。因為從庫的延遲時間不可控,不能無限等待,所以如果等待超時,就應該放棄,然后到主庫去查。按照我們設定不允許過期讀的要求,就只有兩種選擇,一種是超時放棄,一種是轉(zhuǎn)到主庫查詢。

并發(fā)連接和并發(fā)查詢

innodb_thread_concurrency參數(shù)是控制innodb的并發(fā)線程上限。一旦超過這個數(shù)值,新請求就會進入等待。

show processlist看到的幾千個連接,是值并發(fā)連接,而當前正在執(zhí)行的語句,才是并發(fā)查詢。并發(fā)連接影響不大,只是會多占內(nèi)存,而并發(fā)查詢才是CPU殺手。 在線程進入鎖等待以后,并發(fā)線程的計數(shù)會建議,也就是等行鎖的線程是不算在并發(fā)查詢里的。因為所等待已經(jīng)不吃CPU了

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频一区在线播放| 国产乱人伦丫前精品视频| 卡一卡二国产精品| 日韩1区2区日韩1区2区| 91精品日本| 欧美国产精品| av中文字幕在线观看第一页| 涩涩av在线| 不卡在线一区| 伊人精品久久| 国产精品第一| 久久国产电影| 亚洲精品日本| 国产一区二区三区成人欧美日韩在线观看| 国语精品一区| 在线一区免费观看| 国产日韩欧美一区二区三区| 天堂中文在线播放| 午夜精品亚洲| 久久精品凹凸全集| 亚洲精品88| 亚洲专区视频| 精品亚洲成人| 免费精品视频| 精品72久久久久中文字幕| 夜夜嗨网站十八久久| 日韩av一级片| 99久久精品网站| 欧美亚洲福利| a国产在线视频| 免费日韩一区二区| 精品国产亚洲一区二区三区| 免费毛片在线不卡| 国产成人精品三级高清久久91| 免费在线播放第一区高清av| 亚洲精品国产嫩草在线观看 | 国产黄色精品| 欧美日韩视频免费观看| 亚洲精品欧洲| 久久夜夜操妹子| 欧美日韩精品一区二区三区在线观看| 久久久久蜜桃| 国产精东传媒成人av电影| 欧美在线亚洲综合一区| 国产精品视频首页| 国产一区成人| 中文字幕在线看片| 日本久久一区| 99热精品在线观看| 中文一区一区三区高中清不卡免费| 亚洲v在线看| 国产欧美日韩影院| 热久久国产精品| 日韩免费视频| 国产精品一级在线观看| 亚洲精品婷婷| 日本在线一区二区三区| 日韩一区二区三区高清在线观看| 成人精品久久| 综合国产视频| 欧美日韩国产一区二区三区不卡 | 日韩欧美一区二区三区免费看| 日本在线一区二区三区| 欧美日韩国产在线观看网站 | 亚洲v天堂v手机在线| 国产综合精品| 国产极品一区| 欧美在线看片| 日本综合精品一区| 欧美综合国产| 激情久久五月| 日本а中文在线天堂| 国产极品一区| 国产精品一区二区三区av| 日韩在线观看一区二区三区| 亚洲欧美日韩国产综合精品二区| 欧产日产国产精品视频| 高清一区二区三区| 国产精品久久久久久av公交车| 综合激情视频| 久久成人亚洲| 久久久777| 老牛影视精品| 国产精品原创| 国产成人免费av一区二区午夜| 国产精品网在线观看| 国产亚洲字幕| 欧美日韩夜夜| 久久精品 人人爱| 97se亚洲| 国产精品网在线观看| 国产乱码精品一区二区亚洲| 国产毛片精品| 精品美女视频| 久久男人天堂| 久久久久99| 99久久亚洲精品| 日韩一级网站| 羞羞答答国产精品www一本| 久久亚洲不卡| 日韩在线麻豆| 欧美日韩一区二区三区不卡视频 | 久久婷婷国产| 精品高清久久| 肉色欧美久久久久久久免费看 | 日韩精品高清不卡| 日韩高清三区| 国产精品密蕾丝视频下载| 国产精品久久久久久模特| 国产一区一一区高清不卡| 日本在线啊啊| 99亚洲精品| 日韩精品亚洲aⅴ在线影院| 亚州欧美在线| 国产高清精品二区| 午夜影院一区| 麻豆成人在线| 亚洲精品自拍| 欧美精品97| 在线中文字幕播放| 欧美另类专区| 亚洲精品成人一区| 国产精品黄网站| 肉色欧美久久久久久久免费看| 影音国产精品| 国产精品最新| 色爱av综合网| 蜜臀国产一区二区三区在线播放| 欧美日本久久| 欧洲精品一区二区三区| 亚洲欧美日本视频在线观看| 日韩av中文在线观看| 精品欧美视频| 亚洲免费影院| 麻豆成人av在线| 妖精视频成人观看www| 国产精品午夜一区二区三区| 成人精品中文字幕| 四虎国产精品免费久久| 精品美女久久| 日韩中文字幕区一区有砖一区| 日本午夜精品视频在线观看| 韩国久久久久久| 亚洲毛片在线免费| 激情视频网站在线播放色| 男女性色大片免费观看一区二区| 美女国产一区二区三区| 91精品精品| 国产亚洲精aa在线看| 99精品网站| 国产精品天天看天天狠| 最新日韩av| 国产a久久精品一区二区三区| 欧美日韩国产免费观看 | 国产乱人伦丫前精品视频| 91精品蜜臀一区二区三区在线| 日韩欧美精品一区二区综合视频| 日韩电影免费网站| 日本不卡中文字幕| 久久久久免费av| 国产欧美88| 亚洲福利国产| 久久精品国产久精国产爱| 噜噜噜躁狠狠躁狠狠精品视频| 国产一区丝袜| 欧美久久香蕉| 日韩专区一卡二卡| 色婷婷狠狠五月综合天色拍| 国产精品17p| 亚洲欧美日本国产| 激情欧美丁香| yellow在线观看网址| 国产欧美日韩一区二区三区在线| 国产一在线精品一区在线观看| 欧美交a欧美精品喷水| 亚洲精品女人| 成人羞羞在线观看网站| 久久精品女人| 亚洲v天堂v手机在线| 亚洲一区日本| 欧美成人亚洲| 一区二区三区四区日本视频| 免费在线成人| 国产精品中文字幕制服诱惑| 蜜臀久久99精品久久久久宅男| 精精国产xxxx视频在线野外| 国产精品久久免费视频| 亚洲一区av| 免费精品视频| 国产视频一区三区| 不卡一区综合视频| 久久精品国产大片免费观看| 激情国产在线| 亚洲欧洲美洲av| 首页国产精品| 国产黄大片在线观看| 中文字幕在线视频久| 精品久久在线| 国产中文欧美日韩在线| 国产成人久久精品一区二区三区|