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

數據庫并發2萬就跪了?你需要這份指導性的知識框架

數據庫
如果各位看官的 SQL 數據庫真有 2W+ 高并發,那真是要恭喜你。你已經比很多公司的 MIS 都要前衛得多。2W 和 2K 差別有那么大嗎?

如果各位看官的 SQL 數據庫真有 2W+ 高并發,那真是要恭喜你。你已經比很多公司的 MIS 都要前衛得多。

2W 和 2K 差別有那么大嗎?

嗯,真是有的。2K 并發的 MIS 系統也經常有無法訪問,timeout 的異常,處理這些異常已經夠很多朋友苦惱的了。2W+ 的并發那需要懂的知識框架就更復雜了。

筆者曾服務了 500W+ 用戶的電商系統,7*24 小時的噩夢再也不想見。

前幾年在一家擁有 500 多萬直銷顧問的團隊做電商平臺。平時的流量很平穩,基本都在千把,月底拼業績才會沖一沖,來個 1W+ 的并發。

大部分的數據庫開發人員在日常中還是沒心沒肺沒壓力的。但電商系統有個慣例,都是淘寶帶出來的,會搞促銷,類似于雙 11. 一到這時間段,必須隨時警惕流量是不是井噴,一旦跨越紅線,系統就跟前期的 12306 一樣,頻頻延遲。

隨著 DBA 組的介入,才慢慢搞定這難題。本文的初衷也來自于這段經歷的總結。

一、單實例數據庫應用

這種應用架構最簡單,UI + 應用服務器 + 數據庫服務器,所有的請求,無論讀寫都直接拋給數據庫。

往往項目初期,為了迅速的證明自己的點子靠譜,拿到市場,我們會選擇這樣的架構來實現產品。此時往往 10 萬用戶注冊了,但每天訪問的人數剛過 200,每張數據庫表的總數,最大也不會超過 5000 條。

這樣的應用,開發能力強的,1 個人就可以搞定,業務復雜的需要分前端和后端。

但無論如何都屬于基礎項目,如果你工作 3,4 了還是停留在這種模式下,那該補補課了。

數據庫并發2萬就跪了?你需要這份指導性的知識框架

事物總是在發展之中的,只要系統正常運行,總有一天用戶量會加大,隨之而來的請求會超乎你的想象(前提你是做了 pv, uv 的數據分析),很快這種架構會遇到用戶超過 100 萬,日訪問量超過 20 萬,峰值并發 2 萬,而數據庫的表會趨近于億級的量。

此時應用系統如果還是建立在當初的硬件基礎上(比如 16GB,16 核,240GB 硬盤)應該會明顯感覺得到拖卡慢的尷尬,增多的是用戶的抱怨和投訴。

就像 12306 前期的購票一樣,往往輪到你的時候,票沒了。

數據庫并發2萬就跪了?你需要這份指導性的知識框架

二、多實例數據庫

遇到流量起來的應用,如果壓力確定是在數據庫上了,那么分庫是必然的事情了。

將一個大庫拆成若干小庫,保持數據庫對象都一致,這樣每個小庫分攤掉一部分流量,應用終將回歸第一種簡單架構上來,將用戶服務好。

以現在的硬件服務 4000 個并發,對于不復雜的商用沒有問題。具體能負責多少看系統上線后的 baseline (基線)監測,這里我們假定 4000 并發。所以分成 5 個相同的庫,來做分庫。這樣同時寫入 4000 并發夠用。

數據庫并發2萬就跪了?你需要這份指導性的知識框架

這里會遇到一個技術細節,就是分庫路由。

如何將流量均攤到每個庫里,是需要研制算法的。比如已知全國用戶分布均衡,即華東、華北、華西、華南和華中,各有 4000 用戶。

我們依據地理位置分成 5 個庫,根據用戶身份證哈希成 5 個散列值,分別對應了這 5 臺數據庫,用戶就被分流了。

只要用戶不是劇烈增長,老板也滿意這種小而美的生意,這樣的架構可以一直沿用下去。基本不會有瓶頸。頂多就是時間長了,表數據越來越大了,我們用分庫的思想進行分表就可以了。

當前年份(月份)數據放在主表里面,而歷史數據就歸檔到聚合表里;或者索性每月,每年分成子表存儲,而跨時間段的查詢用視圖來控制。

但用戶的行為始終是不可控的,我么必須做一系列的事情來滿足和留住用戶。比如促銷、打折、團購等等。

這個時候,用戶的行為不僅僅是下個單買杯咖啡這么簡單了。他們會大量查詢他們的數據,帶來的是讀請求遠遠大于寫入請求。

眾所周知,讀請求即使不影響寫入請求(比如 MVVC),但也會耗盡服務器的 CPU\IO\Network 資源。那么我們必須更進入一層,讀寫分離。

三、讀寫分離

讀寫分離是另一種分庫,但與前面的分庫意圖不一樣。分出來的庫和源庫一模一樣,且只讀不接收用戶的寫入請求。實現細節每個數據庫都不一樣,也可以使用實時同步工具做,詳情可以參考《Designing Data-Intensive Applications》這本書。不僅僅給出了指導思想,更有每種數據庫的讀寫分離組件指南。

數據庫并發2萬就跪了?你需要這份指導性的知識框架

責任編輯:未麗燕 來源: DBAplus社群
相關推薦

2024-02-16 09:00:00

軟件架構代碼設計軟件開發技術

2023-10-16 08:14:21

AI安全數據

2020-02-25 17:04:05

數據庫云原生分布式

2011-03-04 14:13:02

MySQL數據庫

2021-04-24 16:58:03

數據庫工具技術

2021-08-04 10:51:04

數據庫單元測試SQL

2015-06-01 15:11:37

數據庫update

2010-05-12 17:45:03

MySQL數據庫引擎

2010-07-30 15:37:53

使用DB2

2010-08-02 16:26:54

Flex Server

2025-05-08 07:05:00

數據分析AICIO

2010-01-04 17:54:41

Silverligh訪

2011-03-28 13:47:12

數據庫設計

2019-09-16 09:03:11

數據庫SQLMySQL

2020-04-21 23:14:08

數據并發控制

2010-08-18 09:00:38

數據庫

2010-08-09 11:29:32

DB2數據庫

2025-02-08 12:05:44

MySQLMyISAMInnoDB

2023-09-27 09:00:02

SpringBoot并發編程

2010-04-08 10:44:28

Oracle數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区四区在线 | 久久成人一区 | 亚洲午夜视频 | 99re在线视频 | 看黄在线 | 九九综合九九 | 黄网站涩免费蜜桃网站 | 国产精品有限公司 | 99国内精品久久久久久久 | 狠狠色香婷婷久久亚洲精品 | 中文字幕一区二区三区乱码在线 | 日韩视频一区二区三区 | 97人人澡人人爽91综合色 | 天天躁日日躁aaaa视频 | 在线免费中文字幕 | 久久久久久亚洲精品不卡 | 老司机午夜性大片 | 久久亚洲一区二区三区四区 | 亚洲天堂av网 | 精品一区二区三区不卡 | 精品一区二区三区四区五区 | 爽爽免费视频 | 国产成人黄色 | 天堂一区二区三区 | 91一区二区三区 | 午夜在线小视频 | 色爽女| 91在线观看| 日日噜噜夜夜爽爽狠狠 | 欧美成人精品在线观看 | 欧美日韩亚洲一区 | 日韩av手机在线观看 | 欧美日韩久 | 久久久久久国产精品 | 色免费在线视频 | 日韩第一区| 91一区二区三区 | 日韩欧美视频 | 性一交一乱一透一a级 | 九九九国产 | 日韩精品一区二区三区 |