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

數據庫優化方案:查詢請求增加時,如何做主從分離

數據庫 其他數據庫
大部分系統的訪問模型是讀多寫少,讀寫請求量的差距通常可以達到幾個數量級。這一點很容易理解,比如刷朋友圈的請求量肯定比發朋友圈的要大,淘寶商品的瀏覽量通常也遠大于下單量。

圖片圖片

當前數據庫仍為單機部署,根據一些云廠商的基準測試結果,在4核8GB的機器上運行MySQL 5.7時,大概可以支撐500TPS和10000QPS。運營負責人表示正在準備雙十一活動,并且公司層面會繼續加大在全渠道的推廣投入,這無疑會引發查詢量的大幅增加。今天我們將討論如何通過主從分離來解決查詢請求量激增的問題。

主從讀寫分離

大部分系統的訪問模型是讀多寫少,讀寫請求量的差距通常可以達到幾個數量級。這一點很容易理解,比如刷朋友圈的請求量肯定比發朋友圈的要大,淘寶商品的瀏覽量通常也遠大于下單量。因此,我們的首要任務是讓數據庫能夠應對更高的查詢請求。為了實現這一點,首先需要將讀寫流量區分開來,因為只有這樣,才能對讀流量進行單獨擴展,這就是我們所說的主從讀寫分離。

其實,這本質上是一個流量分離的問題,就像道路交通管制一樣,我們將一個四車道的大馬路劃出三個車道供領導外賓使用,剩下一個車道供普通車輛行駛,優先保證領導先行,原理類似。主從讀寫分離是一個常規的做法,在面對數據庫突發讀流量時也是一種有效的應對策略。在我目前的項目中,曾出現過前端流量激增導致從庫負載過高的情況,這時DBA同事會優先做從庫擴容,分擔讀流量,將負載分散到多個從庫上,減輕了從庫的壓力,接下來研發團隊則會考慮其他方案來進一步優化數據庫層的流量處理。

主從讀寫的兩個技術關鍵點

一般來說,在主從讀寫分離機制中,我們將一個數據庫的數據拷貝為一份或多份,并將其寫入到其他數據庫服務器中。原始數據庫被稱為主庫,主要負責數據的寫入;而拷貝的目標數據庫稱為從庫,主要負責支持數據查詢。

可以看到,主從讀寫分離有兩個技術上的關鍵點:

  • 數據的拷貝,也就是主從復制。
  • 如何屏蔽主從分離帶來的訪問數據庫方式的變化,使得開發人員在使用時,感覺像是在操作單一數據庫一樣。

1. 主從復制

我先以 MySQL 為例介紹一下主從復制。

MySQL 的主從復制依賴于 binlog,即將 MySQL 上的所有變化記錄下來,并以二進制形式保存在磁盤上的二進制日志文件中。主從復制的過程是將 binlog 中的變化從主庫傳輸到從庫,通常這個過程是異步的,也就是說,主庫上的操作不會等待 binlog 同步完成。

主從復制的具體過程如下:首先,從庫在連接到主庫時,會創建一個 IO 線程,用于請求主庫更新的 binlog,并將接收到的 binlog 內容寫入到一個名為 relay log 的日志文件中;與此同時,主庫會創建一個 log dump 線程,負責將 binlog 發送給從庫。然后,從庫還會創建一個 SQL 線程,讀取 relay log 中的內容,并在從庫中進行回放,最終實現主從一致性。

這種主從復制方式是比較常見的。在此方案中,使用獨立的 log dump 線程以異步的方式進行數據傳輸,可以避免影響主庫的主體更新流程。并且從庫接收到信息后,并不是直接寫入從庫的存儲,而是寫入 relay log,這樣可以避免直接寫入存儲帶來的性能開銷,從而避免主從延遲過長。

圖片圖片

你會發現,基于性能考慮,主庫的寫入流程并不會等待主從同步完成后才返回結果。因此,在極端情況下,比如主庫上的 binlog 還沒有來得及刷新到磁盤上,就發生磁盤損壞或機器掉電的情況,就可能導致 binlog 丟失,從而造成主從數據的不一致。不過,這種情況出現的概率較低,對于大多數互聯網項目來說是可以容忍的。

在實現主從復制后,我們可以在寫入時只操作主庫,而在讀數據時只讀取從庫。這樣,即使寫請求會鎖表或鎖記錄,也不會影響讀請求的執行。同時,在讀流量較大的情況下,可以部署多個從庫共同承擔讀流量,這就是所謂的“一主多從”部署方式。比如在你的垂直電商項目中,可以通過這種方式來應對較高的并發讀流量。此外,從庫還可以作為備庫使用,避免主庫故障導致數據丟失。

那么,你可能會問,是否可以通過無限增加從庫的數量來抵抗大量的并發請求呢?實際上,并不是這樣。隨著從庫數量的增加,連接到每個從庫的 IO 線程也會增多,主庫需要創建更多的 log dump 線程來處理這些復制請求,導致主庫的資源消耗增加。而且,由于受限于主庫的網絡帶寬,實際上一個主庫最多只能連接 3~5 個從庫。

圖片

解決這個問題的思路有很多,核心思想就是盡量避免從庫查詢數據。以剛才的例子為基礎,我有三種解決方案:

第一種方案:數據冗余
你可以在發送消息隊列時,不僅僅發送微博 ID,而是將隊列處理機需要的所有微博信息一并發送。這樣就避免了從數據庫中重新查詢數據。

第二種方案:使用緩存
在同步寫入數據庫的同時,將微博數據也寫入到 Memcached 等緩存中。這樣隊列處理機在獲取微博信息時,會優先查詢緩存,從而確保數據的一致性。

第三種方案:查詢主庫
隊列處理機可以選擇查詢主庫,而不是從庫。不過,這種方式需要謹慎使用,必須確保查詢量級不會過大,能夠在主庫的承受范圍內,否則可能對主庫造成過大的壓力。

在這三種方案中,我通常會優先考慮第一種方案,因為它相對簡單,雖然可能會導致單條消息較大,增加消息發送的帶寬和時間,但其簡潔性和可控性較高。緩存方案適合用于新增數據的場景,但在更新數據時,可能會引發數據不一致的問題。例如,如果兩個線程同時更新緩存,可能會導致緩存中的數據與數據庫中的數據不一致。查詢主庫的方案,我會盡量避免使用,除非沒有其他選擇。原因是如果為隊列處理機提供查詢主庫的接口,很難保證團隊中的其他成員不會濫用該接口,導致主庫承受過多的讀請求,最終影響系統的穩定性。

因此,選擇哪種方案,還是要根據實際的項目需求和系統架構來決定

另外,主從同步的延遲,是我們排查問題時很容易忽略的一個問題。有時候我們遇到從數據庫中獲取不到信息的詭異問題時,會糾結于代碼中是否有一些邏輯會把之前寫入的內容刪除,但是你又會發現,過了一段時間再去查詢時又可以讀到數據了,這基本上就是主從延遲在作怪。所以,一般我們會把從庫落后的時間作為一個重點的數據庫指標做監控和報警,正常的時間是在毫秒級別,一旦落后的時間達到了秒級別就需要告警了。

2. 如何訪問數據庫

我們已經通過主從復制技術將數據復制到多個節點,并實現了數據庫的讀寫分離。此時,數據庫的使用方式發生了變化:過去只需要使用一個數據庫地址,現在需要配置主庫地址和多個從庫地址,同時區分寫入操作和查詢操作。如果再結合“分庫分表”的技術,復雜度會進一步增加。為了降低實現的復雜度,業界涌現了很多數據庫中間件來解決數據庫的訪問問題,這些中間件大致可以分為兩類。

第一類:內嵌式數據庫中間件
這一類中間件以淘寶的 TDDL(Taobao Distributed Data Layer)為代表,它以代碼形式內嵌在應用程序內部。可以把它看作是一種數據源代理,配置管理多個數據源,每個數據源對應一個數據庫,可能是主庫,也可能是從庫。

當有數據庫請求時,中間件將 SQL 語句發給某個指定的數據源處理,并返回結果。這類中間件的優點是簡單易用,沒有額外的部署成本,因為它直接植入到應用程序內部,與應用程序一起運行,適合運維能力較弱的小團隊使用。缺點是缺乏多語言支持,目前主流的方案如 TDDL 和早期的網易 DDB 都是基于 Java 開發的,無法支持其他語言。此外,版本升級依賴使用方更新,管理起來較為困難。

第二類:獨立部署的代理層中間件
這一類中間件包括早期阿里巴巴開源的 Cobar、基于 Cobar 開發的 Mycat、360 開源的 Atlas、美團開源的 DBProxy 等等。這些中間件部署在獨立的服務器上,業務代碼像使用單一數據庫一樣使用它,但它內部管理著多個數據源。當有數據庫請求時,代理層會對 SQL 語句進行必要的改寫,并將其發送到指定的數據源。這類中間件使用標準的 MySQL 通信協議,因此能很好地支持多語言。而且,因為它是獨立部署的,升級和維護也較為方便,適合有一定運維能力的大中型團隊使用。它的缺點是所有 SQL 請求都需要跨越兩次網絡:從應用到代理層,再從代理層到數據源,因此在性能上會有所損耗。

圖片圖片

這些中間件對你來說可能并不陌生,但我想強調的是,在使用任何中間件時,一定要對它有足夠深入的了解。否則,一旦遇到問題,無法快速解決的話,后果可能會很嚴重。舉個例子,我之前有一個項目中,團隊一直使用自研組件來實現分庫分表,后來發現這套組件偶爾會產生多余的數據庫連接。于是,團隊討論后決定將其替換為 Sharding-JDBC。我們原本以為這只是一次簡單的組件切換,結果上線后遇到了兩個問題:一是因為使用方式不當,偶爾會出現分庫分表不生效的情況,導致掃描所有庫表;二是偶爾出現查詢延時達到秒級別。由于當時對 Sharding-JDBC 的了解不夠深入,這兩個問題沒能很快解決。最后,我們只得切回原來的組件,待找到問題后再進行切換。

責任編輯:武曉燕 來源: 二進制跳動
相關推薦

2023-10-27 18:42:17

節點HDFSDataNode

2011-03-03 10:11:15

數據庫優化

2010-05-20 18:12:37

MySQL數據庫查詢

2010-08-26 14:39:54

Infobright數

2013-01-04 10:00:12

MySQL數據庫數據庫查詢優化

2010-06-10 10:15:50

MySQL數據庫查詢

2010-05-13 10:47:44

MySQL數據庫查詢

2022-02-23 09:17:09

數據庫分離變更

2021-01-31 17:50:41

數據庫查詢程序員

2014-07-18 09:33:53

數據庫數據庫優化

2023-07-12 08:55:16

PawSQL數據庫

2011-05-19 10:29:40

數據庫查詢

2010-06-11 12:32:57

MySQL數據庫查詢

2010-06-17 09:15:02

MySQL數據庫查詢

2019-10-22 08:47:32

HTTP監控系統

2011-04-20 14:28:38

SQL優化

2013-05-21 10:06:11

數據庫查詢優化

2022-06-20 05:40:25

數據庫MySQL查詢

2011-08-11 11:06:20

SSAS多維數據庫數據倉庫

2009-05-15 10:11:55

數據庫查詢查詢性能分頁瀏覽
點贊
收藏

51CTO技術棧公眾號

91一区二区视频| a视频免费观看| 午夜伦理在线视频| 99久久综合狠狠综合久久| 91tv亚洲精品香蕉国产一区7ujn| 中文字幕一区二区三区人妻电影| 久久天堂影院| 婷婷夜色潮精品综合在线| 日本不卡久久| 狠狠综合久久av一区二区| 久久久久久久高潮| 欧美人与性动交| 成人激情五月天| 中文无码日韩欧| 欧美亚洲高清一区| 亚洲 自拍 另类小说综合图区| wwwww在线观看免费视频| 国产99久久久精品| 国产精品香蕉国产| 欧美videossex极品| 91久久国产| 亚洲人成电影网站色www| 中国男女全黄大片| 北岛玲精品视频在线观看| 欧美日韩国产页| 欧美日韩午夜爽爽| 日本三级在线播放完整版| 91碰在线视频| 高清av免费一区中文字幕| 亚洲永久精品视频| 蜜桃av一区| 韩国视频理论视频久久| 亚洲欧美精品aaaaaa片| 国产午夜一区| 亚洲精品一区二区三区精华液| 午夜一区二区视频| 欧美日韩成人影院| 一本久道久久综合中文字幕| 成人免费看片'免费看| 麻豆tv免费在线观看| 国产日韩三级在线| 欧美极品一区二区| 天天综合网在线| 国产69精品一区二区亚洲孕妇| 成人夜晚看av| 国产精品无码久久久久成人app| 久久久噜噜噜久久狠狠50岁| 孩xxxx性bbbb欧美| 日韩三级免费看| 在线欧美不卡| 97久久国产精品| 国产精品7777777| 日韩视频久久| 97精品国产97久久久久久免费| 久久久久无码国产精品不卡| 伊人情人综合网| 欧美老妇交乱视频| 欧美人与禽zozzo禽性配| 亚洲五月综合| 欧美国产在线电影| 国产无遮挡裸体免费视频| 欧美三区视频| 91极品视频在线| 日韩精品1区2区| 免费欧美日韩| 国产精品入口福利| 亚洲综合精品在线| 国产一区二区免费视频| 91精品国产一区二区三区动漫| av免费观看在线| 大陆成人av片| 欧美 日韩 国产在线| 国产精品二线| 亚洲日本在线a| www.亚洲视频.com| 成人性生交大片免费网站| 欧洲一区在线电影| 亚洲精品永久视频| 国产亚洲精品美女久久| 亚洲欧洲在线视频| 国产亚洲精品久久久久久豆腐| 国产精品成人a在线观看| 久久av.com| 日本在线观看中文字幕| 性欧美videos另类喷潮| 国产精品狼人色视频一区| 一级片视频网站| 成人午夜av电影| 精品婷婷色一区二区三区蜜桃| 黄色大片在线看| 亚洲激情一二三区| 成人免费毛片网| 亚洲国产伊人| 亚洲精品久久久久| 成人无码精品1区2区3区免费看| 一本一道久久a久久精品蜜桃| 久久久久亚洲精品成人网小说| 蜜臀99久久精品久久久久小说 | 中文字幕丰满人伦在线| 国产原创一区二区| 日本黄网免费一区二区精品| 老司机午夜在线| 欧美性xxxx极品hd满灌| 一区二区三区四区毛片| 欧美a大片欧美片| yw.139尤物在线精品视频| 日本中文字幕网| 久久99国产精品免费网站| 久久99久久99精品蜜柚传媒| 欧美黑人激情| 欧美性猛交丰臀xxxxx网站| 激情成人在线观看| 欧美理论在线播放| 97在线视频一区| a级片免费视频| 中文字幕高清不卡| 精品这里只有精品| 日韩成人精品| xxx成人少妇69| 亚洲va在线观看| zzijzzij亚洲日本少妇熟睡| 中文字幕乱码一区二区三区| 成人性生交大片免费观看网站| 精品欧美一区二区三区精品久久 | 欧美日韩视频| 91九色在线视频| 伊人在线视频| 91福利精品第一导航| 捆绑凌虐一区二区三区| 欧美一区精品| 91免费观看网站| 午夜激情视频在线| 欧美亚洲一区二区在线观看| 少妇特黄一区二区三区| 99av国产精品欲麻豆| 99久久伊人精品影院| 成人影院在线观看| 911精品国产一区二区在线| 大胸美女被爆操| 日韩精品视频网站| 茄子视频成人在线观看| 韩国久久久久久| 日韩精品一区二区三区第95| 日韩精品成人一区| 97久久精品人人做人人爽 | 久久字幕精品一区| 免费国产在线精品一区二区三区| 成入视频在线观看| 亚洲国产精品va在看黑人| 国产大片中文字幕| av网站一区二区三区| 欧美性潮喷xxxxx免费视频看| 久久三级中文| 久久久久久97| 欧美一区二区公司| 亚洲成人一区二区在线观看| 精品人妻一区二区三区日产| 亚洲另类视频| 欧美aaaaa喷水| 3d性欧美动漫精品xxxx软件| 国产午夜精品美女视频明星a级| 国产黄网在线观看| 国产精品日韩成人| 亚洲天堂网站在线| 欧美午夜在线视频| 九色综合日本| 日本在线精品| 久久视频在线视频| 亚洲精品字幕在线| 欧美午夜激情小视频| 国产jk精品白丝av在线观看| 青椒成人免费视频| 日韩一二区视频| 免费成人三级| 国产精品流白浆视频| 毛片免费不卡| 欧美成人性战久久| 四虎成人在线观看| 国产精品进线69影院| 最好看的中文字幕| 国产精品久久777777毛茸茸 | 国产传媒视频在线| 国产成a人无v码亚洲福利| 国产精品无码一区二区在线| 激情婷婷综合| 97人人香蕉| 欧美××××黑人××性爽| 日韩在线不卡视频| 偷拍精品一区二区三区| 欧美猛男gaygay网站| 国产亚洲精品久久久久久无几年桃 | 中文字幕18页| 玖玖在线精品| 欧美a级黄色大片| 国产真实有声精品录音| 亚洲影影院av| 蜜桃视频成人m3u8| 欧美极品少妇xxxxⅹ裸体艺术 | 欧美激情一区不卡| 妖精视频一区二区| 久久99日本精品| 国产深夜男女无套内射| 日韩精品1区| 久久涩涩网站| 久久99成人| 国产精品麻豆va在线播放| av人人综合网| 久久深夜福利免费观看| 黄色的视频在线免费观看| 欧美sm美女调教| 国产精品玖玖玖| 在线观看国产91| 国产www在线| 亚洲一区电影777| 日本爱爱小视频| 国产日韩欧美综合在线| 中文乱码人妻一区二区三区视频| 黄网站免费久久| 亚洲一级免费在线观看| 亚洲在线日韩| 男人添女荫道口图片| 香蕉精品视频在线观看| 日本精品国语自产拍在线观看| 欧美激情网址| 成人免费观看网站| 天堂久久av| 亚洲最大成人网色| av成人在线网站| 成人黄色免费网站在线观看| 日韩精品三区| 日本免费在线精品| 午夜影院在线播放| 7m第一福利500精品视频| 男女视频在线| 欧美国产日韩在线| 成全电影大全在线观看| 欧美乱大交xxxxx| www在线观看播放免费视频日本| 中文字幕亚洲欧美| 午夜在线播放| 色综合伊人色综合网| 电影在线高清| 色偷偷亚洲男人天堂| av在线免费观看网| 日韩网站在线观看| 老司机免费在线视频| 久久久精品国产| h片在线播放| 久国内精品在线| 国产精品一品| 国产69久久精品成人| 是的av在线| 国产精品国产三级国产专播精品人 | 欧美一区二区在线免费观看| 国产又粗又猛又黄视频| 欧美日韩亚洲91| 亚洲黄色免费观看| 在线一区二区三区做爰视频网站| 波多野结衣一二区| 欧美日韩免费高清一区色橹橹| 在线免费看91| 日韩精品在线网站| 色欲久久久天天天综合网 | 国产特黄在线| 视频在线一区二区| 欧美大片黄色| 欧美一级高清免费| 国产成+人+综合+亚洲欧美| 国产精品一区二区久久国产| 精品一区二区三区免费看| 成人资源av| 在线亚洲a色| 在线视频精品一区| 伊人久久成人| 精品少妇无遮挡毛片| 激情图片小说一区| 亚洲色偷偷色噜噜狠狠99网| 国产亚洲精品bt天堂精选| 日本女人性生活视频| 亚洲国产视频直播| 色老头在线视频| 日韩视频免费观看高清完整版| 色哟哟国产精品色哟哟| 国产一区二区三区精品久久久| caoporn免费在线视频| 2019中文字幕在线观看| 狠狠久久伊人中文字幕| 国产伦视频一区二区三区| 欧洲乱码伦视频免费| 高清无码视频直接看| 日韩精品国产精品| 少妇性l交大片7724com| 久久婷婷国产综合国色天香| 国产三级aaa| 好吊成人免视频| 99热这里只有精品99| 日韩毛片在线观看| 男女在线视频| 91精品久久久久久久久青青| 思热99re视热频这里只精品| 在线成人性视频| 亚洲一区二区三区高清| 欧美激情第四页| 久久九九全国免费| 国产成年人免费视频| 在线电影一区二区三区| 国产中文字幕在线播放| 久久免费观看视频| 成人黄色91| 亚洲精品视频一二三| 亚洲欧美高清| 涩视频在线观看| 国产精品日日摸夜夜摸av| av中文在线播放| 欧美精品一区二区三区一线天视频| www黄在线观看| 日本中文字幕不卡免费| 国产精品x8x8一区二区| 警花观音坐莲激情销魂小说| 日本怡春院一区二区| 女尊高h男高潮呻吟| 亚洲一区二区三区中文字幕 | 国产综合色产在线精品| 欧洲av一区二区三区| 欧美日韩激情美女| 亚洲黄色a级片| 久久国产精品久久久久久| 韩国理伦片久久电影网| 日韩欧美在线电影| 久久精品卡一| 亚洲精品成人无码| 色综合天天综合狠狠| 天天综合网在线| 午夜精品久久久99热福利| www.爱久久| www.成年人视频| 成人动漫中文字幕| 国产精品19乱码一区二区三区| 日韩免费成人网| 欧美78videosex性欧美| 91传媒视频免费| 中文字幕一区二区三区欧美日韩| 久久综合在线观看| 亚洲精品视频观看| 亚洲第一页综合| 高清视频欧美一级| 精品欧美午夜寂寞影院| 九色自拍视频在线观看| heyzo一本久久综合| 三级黄色在线视频| 亚洲美女av网站| 国模一区二区| 一级做a爰片久久| 国内不卡的二区三区中文字幕 | 欧美性猛交xxxx乱大交退制版| 国产永久免费高清在线观看| 国产精品久久久久久久午夜| 成人vr资源| 欧美视频亚洲图片| 亚洲夂夂婷婷色拍ww47| 天堂v在线观看| 国产99久久精品一区二区永久免费 | 美日韩精品免费视频| 日韩一区免费| 精品国产一区三区| 久久久久九九视频| 一区精品在线观看| 欧美成人午夜激情视频| 国产精品视屏| 国产熟人av一二三区| 欧美国产日产图区| 99久久精品国产一区二区成人| 久久久久久久999| 国产精品密蕾丝视频下载| 三上悠亚av一区二区三区| 一区二区三区四区中文字幕| 天天综合在线视频| 成人国产精品久久久久久亚洲| 欧美日韩国产色综合一二三四| 三级视频网站在线观看| 在线免费观看成人短视频| 国产传媒在线播放| 久久精品国产第一区二区三区最新章节 | 一区二区三区日本久久久| 九色91popny| 亚洲在线视频一区| 国产在线一在线二| 91久久精品国产91久久性色tv| 在线综合亚洲| 青青操在线视频观看| 日韩av网站电影| 色婷婷成人网| 日韩网址在线观看| 伊人婷婷欧美激情| 91ph在线| 九九九九精品| 国产乱淫av一区二区三区| youjizz在线视频| 欧美高清激情视频| 久久亚洲国产|