典型數(shù)據(jù)庫架構(gòu)設(shè)計及應(yīng)用_第1頁
典型數(shù)據(jù)庫架構(gòu)設(shè)計及應(yīng)用_第2頁
典型數(shù)據(jù)庫架構(gòu)設(shè)計及應(yīng)用_第3頁
典型數(shù)據(jù)庫架構(gòu)設(shè)計及應(yīng)用_第4頁
典型數(shù)據(jù)庫架構(gòu)設(shè)計及應(yīng)用_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 典型數(shù)據(jù)庫架構(gòu)設(shè)計及應(yīng)用技術(shù)創(chuàng)新 變革未來DB架構(gòu)典型設(shè)計1.單庫RPCuser-centeruser-db2.分組user-MSRPCuser-center集群寫 BinlogS讀schema復(fù)制分組結(jié)構(gòu)解決數(shù)據(jù)庫問題: 1.數(shù)據(jù)庫讀性能達(dá)到瓶頸2.保證讀高可用3.分片(sharding)db2路由方法:1.范圍法例,db1:01億db2:12億2.hash法(使用頻率高)db1集群分庫 分表水平切分 user-center分組與分片集群架構(gòu)的異同點異同點名稱相同點不同點1.同一個分組集群中,主庫與從庫之間同時產(chǎn)生聯(lián)系分組集群架構(gòu)2.每一個實例之間的數(shù)據(jù)是相同的,復(fù)制的,每一個實例之間的數(shù)

2、據(jù)都包含全部數(shù)據(jù)數(shù)據(jù)庫的表結(jié)構(gòu)相同 ,schema相同1.不同實例之間不直接產(chǎn)生聯(lián)系,通過服務(wù)對數(shù)據(jù)庫進(jìn)行讀 寫分片集群架構(gòu)2.不同實例之間的數(shù)據(jù)不重合,無交集,每一個實例之間的數(shù)據(jù)構(gòu)成全部數(shù)據(jù)項目名稱解決問題應(yīng)用場景分組集群架構(gòu)線性提升讀性能, 保證讀的高并發(fā)、高可用分片集群架構(gòu)數(shù)據(jù)量大當(dāng)數(shù)據(jù)量達(dá)到千萬級別,或者數(shù)據(jù)量達(dá)到百萬級 別但查詢復(fù)雜,需要進(jìn)行水平切分分組及分片集群架構(gòu)解決的問題分組+分片集群架構(gòu)4.分組+分片user-centerdb0db1MSM S集群垂直切分login name例:user id 屬性:登錄名密碼password年齡/性別age/sex個人介紹introduc

3、tion垂直切分user_base user_ext常見考慮因素:1.屬性長度簽名sign2.屬性的訪問頻度垂直切分特點及解決問題特點:多個實例庫之間沒有主從聯(lián)系不同數(shù)據(jù)庫之間的schema不同不同表、不同庫之間,一般來說,至少有一列的組件屬性相同解決問題:可以降低單庫數(shù)據(jù)量減少了一行數(shù)據(jù)長度,使得相同的buffer緩存更多的row,降低磁盤io回顧1.早期業(yè)務(wù)量小的時候,使用單庫,可以響應(yīng)需求的快速迭代。隨著讀性能的增強,以及系統(tǒng)對讀請求的高可用要求,一般采用分組的數(shù)據(jù)庫架構(gòu)方式,常見的是:一主兩從,讀寫分離,binlog主從同步。隨著業(yè)務(wù)發(fā)展,數(shù)據(jù)量越來越大,一個庫承載不了所有數(shù)據(jù),采用分

4、片(sharding)方式,將原 來放在一個庫的數(shù)據(jù)放到不同庫里。實際線上讀的量大,并且有讀高并發(fā)、高可用的需求,而且數(shù)據(jù)量也很大,經(jīng)常使用分組+分片集 群架構(gòu)方式。對于屬性較短,訪問頻度較高的,采用數(shù)據(jù)庫垂直切分架構(gòu)優(yōu)化方案。單KEY業(yè)務(wù)在無限容量情況下 如何進(jìn)行數(shù)據(jù)庫架構(gòu)設(shè)計單key業(yè)務(wù)、無限容量、數(shù)據(jù)庫架構(gòu)用戶中心是單key業(yè)務(wù)的典型核心源數(shù)據(jù):User、User_id、loginname、password、nickname.time、sex單key業(yè)務(wù)組件User- centeruser-db0user-db1常見切分方法1.范圍切分法以uid范圍為依據(jù)進(jìn)行路由優(yōu)點:切分策略簡單,服務(wù)

5、只要能拿到uid 就能將數(shù)據(jù)定位到相應(yīng)的庫中擴(kuò)容簡單不足:對uid有遞增的需求可能不同實例上,負(fù)載是不均衡的User- centeruser-db0user-db1user-db21000w1000w-2000w2000w-3000w常見切分方法2.hash切分法最常見的hash方法是取模%優(yōu)點:切分策略簡單,用戶服務(wù)中心只要能拿到uid 就可以找到對應(yīng)的實例負(fù)載均衡,只要生成的uid是均衡的, 請求量和數(shù)據(jù)量就是均衡的uid生成的方法不需要趨勢遞增不足:1.擴(kuò)容不方便 2.re hoshuser-db0user-db1user-db20User- center 1水平切分的問題查詢需求分析分

6、類需求特點前臺、在線、用戶1.用戶登錄需求loginname2.99%需求由用戶uid訪問單行數(shù)據(jù)訪問吞吐量大時延要求敏感后臺不同需求不同訪問分頁訪問對數(shù)據(jù)進(jìn)行排序、分頁返回并發(fā)低時延不敏感前臺需求解決方案db0db1User-center SQL uid % 2登錄名直接定位到庫的方法:1.Mapping表法:t_map(login_name,uid) 2.cache 法 (KV):loginnameuid 3.loginname生成uid法:uid=f(loginname)4.基因法分庫基因:決定數(shù)據(jù)落在哪個庫中的最后幾個bitf(loginname)=md5(loginname)最后2個bit與uid的最后2個bit相同64bit0001User- center SQL uid % 41011后臺需求解決方案-前臺、后臺分離User- centerdb0db1db2db3前臺后臺User-centerHbaseES冗余MQ寫message總結(jié)1.以用戶中心為首的單Key類業(yè)務(wù),在數(shù)據(jù)量越來越高的情況下,解決大數(shù)據(jù)量業(yè)務(wù),要進(jìn)行數(shù)據(jù)的水平切分,水平切分有兩種方案,一種是范圍法,一種是hash法。前臺類的需求,在登錄時不能定位到相關(guān)的庫。在login上的查詢有三種方法:Mapping表法、cache法(KV)、loginn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論