国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
優(yōu)酷網(wǎng)架構(gòu)學(xué)習(xí)筆記

優(yōu)酷網(wǎng)架構(gòu)學(xué)習(xí)筆記

記得以前給大家介紹過(guò)視頻網(wǎng)站龍頭老大YouTube的技術(shù)架構(gòu),相信大家看了都會(huì)有不少的感觸,互聯(lián)網(wǎng)就是這么一個(gè)神奇的東西。今天我突然想到,優(yōu)酷網(wǎng)在國(guó)內(nèi)也算是視頻網(wǎng)站的老大了,不知道他的架構(gòu)相對(duì)于YouTube是怎么樣的,于是帶著這個(gè)好奇心去網(wǎng)上找了優(yōu)酷網(wǎng)架構(gòu)的各方面資料,雖然談得沒(méi)有YouTube那么詳細(xì),但多少還是挖掘了一點(diǎn),現(xiàn)在總結(jié)一下,希望對(duì)喜歡架構(gòu)的朋友有所幫助。

一、網(wǎng)站基本數(shù)據(jù)概覽

  • 據(jù)2010年統(tǒng)計(jì),優(yōu)酷網(wǎng)日均獨(dú)立訪問(wèn)人數(shù)(uv)達(dá)到了8900萬(wàn),日均訪問(wèn)量(pv)更是達(dá)到了17億,優(yōu)酷憑借這一數(shù)據(jù)成為google榜單中國(guó)內(nèi)視頻網(wǎng)站排名最高的廠商。
  • 硬件方面,優(yōu)酷網(wǎng)引進(jìn)的戴爾服務(wù)器主要以 PowerEdge 1950與PowerEdge 860為主,存儲(chǔ)陣列以戴爾MD1000為主,2007的數(shù)據(jù)表明,優(yōu)酷網(wǎng)已有1000多臺(tái)服務(wù)器遍布在全國(guó)各大省市,現(xiàn)在應(yīng)該更多了吧。

二、網(wǎng)站前端框架

從一開(kāi)始,優(yōu)酷網(wǎng)就自建了一套CMS來(lái)解決前端的頁(yè)面顯示,各個(gè)模塊之間分離得比較恰當(dāng),前端可擴(kuò)展性很好,UI的分離,讓開(kāi)發(fā)與維護(hù)變得十分簡(jiǎn)單和靈活,下圖是優(yōu)酷前端的模塊調(diào)用關(guān)系:

這樣,就根據(jù)module、method及params來(lái)確定調(diào)用相對(duì)獨(dú)立的模塊,顯得非常簡(jiǎn)潔。下面附一張優(yōu)酷的前端局部架構(gòu)圖:

 

三、數(shù)據(jù)庫(kù)架構(gòu)

應(yīng)該說(shuō)優(yōu)酷的數(shù)據(jù)庫(kù)架構(gòu)也是經(jīng)歷了許多波折,從一開(kāi)始的單臺(tái)MySQL服務(wù)器(Just Running)到簡(jiǎn)單的MySQL主從復(fù)制、SSD優(yōu)化、垂直分庫(kù)、水平sharding分庫(kù),這一系列過(guò)程只有經(jīng)歷過(guò)才會(huì)有更深的體會(huì)吧,就像MySpace的架構(gòu)經(jīng)歷一樣,架構(gòu)也是一步步慢慢成長(zhǎng)和成熟的。

1、簡(jiǎn)單的MySQL主從復(fù)制:

MySQL的主從復(fù)制解決了數(shù)據(jù)庫(kù)的讀寫(xiě)分離,并很好的提升了讀的性能,其原來(lái)圖如下:

其主從復(fù)制的過(guò)程如下圖所示:

但是,主從復(fù)制也帶來(lái)其他一系列性能瓶頸問(wèn)題:

  1. 寫(xiě)入無(wú)法擴(kuò)展
  2. 寫(xiě)入無(wú)法緩存
  3. 復(fù)制延時(shí)
  4. 鎖表率上升
  5. 表變大,緩存率下降

那問(wèn)題產(chǎn)生總得解決的,這就產(chǎn)生下面的優(yōu)化方案,一起來(lái)看看。

2、MySQL垂直分區(qū)

如果把業(yè)務(wù)切割得足夠獨(dú)立,那把不同業(yè)務(wù)的數(shù)據(jù)放到不同的數(shù)據(jù)庫(kù)服務(wù)器將是一個(gè)不錯(cuò)的方案,而且萬(wàn)一其中一個(gè)業(yè)務(wù)崩潰了也不會(huì)影響其他業(yè)務(wù)的正常進(jìn)行,并且也起到了負(fù)載分流的作用,大大提升了數(shù)據(jù)庫(kù)的吞吐能力。經(jīng)過(guò)垂直分區(qū)后的數(shù)據(jù)庫(kù)架構(gòu)圖如下:

然而,盡管業(yè)務(wù)之間已經(jīng)足夠獨(dú)立了,但是有些業(yè)務(wù)之間或多或少總會(huì)有點(diǎn)聯(lián)系,如用戶,基本上都會(huì)和每個(gè)業(yè)務(wù)相關(guān)聯(lián),況且這種分區(qū)方式,也不能解決單張表數(shù)據(jù)量暴漲的問(wèn)題,因此為何不試試水平sharding呢?

 

3、MySQL水平分片(Sharding)

這是一個(gè)非常好的思路,將用戶按一定規(guī)則(按id哈希)分組,并把該組用戶的數(shù)據(jù)存儲(chǔ)到一個(gè)數(shù)據(jù)庫(kù)分片中,即一個(gè)sharding,這樣隨著用戶數(shù)量的增加,只要簡(jiǎn)單地配置一臺(tái)服務(wù)器即可,原理圖如下:

如何來(lái)確定某個(gè)用戶所在的shard呢,可以建一張用戶和shard對(duì)應(yīng)的數(shù)據(jù)表,每次請(qǐng)求先從這張表找用戶的shard id,再?gòu)膶?duì)應(yīng)shard中查詢相關(guān)數(shù)據(jù),如下圖所示:

但是,優(yōu)酷是如何解決跨shard的查詢呢,這個(gè)是個(gè)難點(diǎn),據(jù)介紹優(yōu)酷是盡量不跨shard查詢,實(shí)在不行通過(guò)多維分片索引、分布式搜索引擎,下策是分布式數(shù)據(jù)庫(kù)查詢(這個(gè)非常麻煩而且耗性能)

 

四、緩存策略

貌似大的系統(tǒng)都對(duì)“緩存”情有獨(dú)鐘,從http緩存到memcached內(nèi)存數(shù)據(jù)緩存,但優(yōu)酷表示沒(méi)有用內(nèi)存緩存,理由如下:

  1. 避免內(nèi)存拷貝,避免內(nèi)存鎖
  2. 如接到老大哥通知要把某個(gè)視頻撤下來(lái),如果在緩存里是比較麻煩的

而且Squid 的 write() 用戶進(jìn)程空間有消耗,Lighttpd 1.5 的 AIO(異步I/O) 讀取文件到用戶內(nèi)存導(dǎo)致效率也比較低下。

但為何我們?cè)L問(wèn)優(yōu)酷會(huì)如此流暢,與土豆相比優(yōu)酷的視頻加載速度略勝一籌?這個(gè)要?dú)w功于優(yōu)酷建立的比較完善的內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN),它通過(guò)多種方式保證分布在全國(guó)各地的用戶進(jìn)行就近訪問(wèn)——用戶點(diǎn)擊視頻請(qǐng)求后,優(yōu)酷網(wǎng)將根據(jù)用戶所處地區(qū)位置,將離用戶最近、服務(wù)狀況最好的視頻服務(wù)器地址傳送給用戶,從而保證用戶可以得到快速的視頻體驗(yàn)。這就是CDN帶來(lái)的優(yōu)勢(shì),就近訪問(wèn),有關(guān)CDN的更多內(nèi)容,請(qǐng)大家Google一下。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于Redis+MySQL+MongoDB存儲(chǔ)架構(gòu)應(yīng)用
mysql 數(shù)據(jù)庫(kù) 分表后 怎么進(jìn)行分頁(yè)查詢?Mysql分庫(kù)分表方案?
ES Redis MySQL,這個(gè)高可用架構(gòu)設(shè)計(jì)太頂了!
搞定系統(tǒng)設(shè)計(jì) 01:從 0 到百萬(wàn)用戶的系統(tǒng)
MySQL 架構(gòu)及業(yè)務(wù)詳解
架構(gòu)師之路,分布式架構(gòu)下數(shù)據(jù)庫(kù)一致性常用方法初探
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服