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

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

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

開(kāi)通VIP
大型網(wǎng)站架構(gòu)演化一些關(guān)鍵點(diǎn)

http://blog.csdn.net/yyyiran/article/details/17174331

2013.12

一直都對(duì)海量服務(wù)后臺(tái)架構(gòu)很感興趣,最近看完了《大型網(wǎng)站技術(shù)架構(gòu) & 核心原理與案例分析(李智慧 著)》一書(shū),涵蓋了大型網(wǎng)站架構(gòu)的很多技術(shù)細(xì)節(jié),寫(xiě)得極其贊!這里結(jié)合自己的一些見(jiàn)解,整理一個(gè)筆記出來(lái)。


// =======================================================================================


單服務(wù)器LAMP

* 大學(xué)時(shí)期常搞的LAMP,Linux+Apache+MySQL+php,接入、應(yīng)用程序、數(shù)據(jù)庫(kù)、文件都在一臺(tái)服務(wù)器。流量小,一臺(tái)機(jī)器綽綽有余

* 增長(zhǎng)瓶頸:機(jī)器功能耦合

PS:架構(gòu)設(shè)計(jì)一個(gè)核心原則就是高內(nèi)聚低耦合,將網(wǎng)站的接入、邏輯、存儲(chǔ)分開(kāi)到專(zhuān)門(mén)的服務(wù)器是首先考慮的


應(yīng)用邏輯和存儲(chǔ)分離

* 3臺(tái)服務(wù)器各司其職:應(yīng)用服務(wù)器(CPU),文件服務(wù)器(磁盤(pán)容量),數(shù)據(jù)庫(kù)服務(wù)器(磁盤(pán)IO)

* 增長(zhǎng)瓶頸:數(shù)據(jù)庫(kù)訪問(wèn)壓力大

PS:數(shù)據(jù)庫(kù)最終會(huì)讀寫(xiě)磁盤(pán)文件,受到磁盤(pán)IO限制會(huì)首先成為瓶頸


引入緩存減少數(shù)據(jù)庫(kù)讀寫(xiě)

* 緩存是后臺(tái)開(kāi)發(fā)一種重要的方法,其背后遵循的是“局部性原理”,也稱“28定律”:即日常80%的訪問(wèn)會(huì)集中在20%的數(shù)據(jù)上。將這小部分“熱點(diǎn)”數(shù)據(jù)緩存在內(nèi)存中,就可以大大降低數(shù)據(jù)庫(kù)的訪問(wèn)次數(shù)

* 緩存分為2種,本地緩存和分布式緩存

1 本地緩存:數(shù)據(jù)緩存在應(yīng)用服務(wù)器上。優(yōu)點(diǎn)是本地內(nèi)存讀寫(xiě)操作(納秒級(jí)),速度最快;缺點(diǎn)是內(nèi)存大小受限,擴(kuò)展性較差

2 分布式緩存:數(shù)據(jù)緩存在專(zhuān)用的緩存服務(wù)器上。優(yōu)點(diǎn)是應(yīng)用和存儲(chǔ)低耦合,專(zhuān)門(mén)服務(wù)器維護(hù),易擴(kuò)展;缺點(diǎn)是讀寫(xiě)需網(wǎng)絡(luò)開(kāi)銷(xiāo)(毫秒級(jí))

* 緩存數(shù)據(jù)更新:應(yīng)用程序首先讀緩存,讀不到數(shù)據(jù)時(shí)再訪問(wèn)數(shù)據(jù)庫(kù),并將讀到的數(shù)據(jù)寫(xiě)入緩存。如果這時(shí)緩存是滿的,就必須淘汰一些已有數(shù)據(jù),常用的淘汰算法是LRU,即最近最少使用

* 增長(zhǎng)瓶頸:應(yīng)用服務(wù)器并發(fā)處理能力


使用應(yīng)用服務(wù)器集群提高網(wǎng)站并發(fā)處理能力

* “網(wǎng)站撐不住了,就拿機(jī)器頂!”,集群是海量服務(wù)中解決高并發(fā)的常用手段

* 負(fù)載均衡:多臺(tái)應(yīng)用服務(wù)器,如何將前端請(qǐng)求均勻分發(fā)到各臺(tái)機(jī)器上,這就需要前端加一個(gè)負(fù)載均衡服務(wù)器做請(qǐng)求分發(fā)。nginx簡(jiǎn)單靈活的負(fù)載均衡策略被廣泛使用,常見(jiàn)的負(fù)載均衡算法有輪詢、隨機(jī)、加權(quán)、來(lái)源地址hash等

增長(zhǎng)瓶頸:數(shù)據(jù)庫(kù)負(fù)載過(guò)高

PS:當(dāng)網(wǎng)站訪問(wèn)量繼續(xù)上升,雖然加了緩存,但是緩存不命中及應(yīng)用寫(xiě)操作(當(dāng)然也有只寫(xiě)緩存的策略)還是需要訪問(wèn)數(shù)據(jù)庫(kù)


數(shù)據(jù)庫(kù)讀寫(xiě)分離

* 數(shù)據(jù)庫(kù)服務(wù)器主從分離:一臺(tái)主數(shù)據(jù)庫(kù)服務(wù)器(Master)負(fù)責(zé)寫(xiě)操作,多臺(tái)從數(shù)據(jù)庫(kù)服務(wù)器(Slave)負(fù)責(zé)讀操作,主服務(wù)器被寫(xiě)之后會(huì)同步數(shù)據(jù)變更到從服務(wù)器

* 數(shù)據(jù)庫(kù)訪問(wèn)模塊封裝:將應(yīng)用程序?qū)?shù)據(jù)庫(kù)的操作封裝成模塊,使得后端數(shù)據(jù)庫(kù)讀寫(xiě)分離等變更對(duì)應(yīng)用程序透明(高內(nèi)聚低耦合)


到目前為止,網(wǎng)站總體架構(gòu)如下圖所示,已經(jīng)能支撐起大部分網(wǎng)站的訪問(wèn)需求了。當(dāng)然,不單單是網(wǎng)站,這些架構(gòu)關(guān)鍵點(diǎn)對(duì)任何海量服務(wù)的后臺(tái)開(kāi)發(fā)都是相通的



當(dāng)網(wǎng)站訪問(wèn)繼續(xù)增加,有日均PV過(guò)億的趨勢(shì),這時(shí)網(wǎng)站其實(shí)還有很多關(guān)鍵點(diǎn)可以繼續(xù)優(yōu)化:


使用反向代理和CDN做網(wǎng)站文件緩存

* 將網(wǎng)站一些靜態(tài)文件,如圖片、html頁(yè)面等緩存在反向代理服務(wù)器或者CDN服務(wù)器,用戶的請(qǐng)求可以不用到達(dá)應(yīng)用服務(wù)器就返回?cái)?shù)據(jù)給用戶。是網(wǎng)站加速、提高用戶體驗(yàn)的2種常用手段

1 反向代理:部署在網(wǎng)站中心機(jī)房

2 CDN,即內(nèi)容發(fā)布系統(tǒng):部署在網(wǎng)絡(luò)提供商各地的機(jī)房,常用于視頻和圖片文件的緩存


使用分布式文件系統(tǒng)

* 當(dāng)一臺(tái)文件服務(wù)器滿足不了網(wǎng)站文件存儲(chǔ)需求時(shí),接下來(lái)應(yīng)考慮的就是使用分布式文件系統(tǒng)。HDFS、HBase等是當(dāng)前海量文件存儲(chǔ)比較熱門(mén)的方案


使用分布式數(shù)據(jù)庫(kù)和NoSQL

* 關(guān)系型數(shù)據(jù)庫(kù)的分布式是大型網(wǎng)站業(yè)務(wù)持續(xù)增長(zhǎng)的最后手段,可通過(guò)不同業(yè)務(wù)模塊分庫(kù),相同業(yè)務(wù)模塊分表等方法實(shí)現(xiàn)數(shù)據(jù)庫(kù)的分布式部署

* NoSQL相對(duì)于關(guān)系型數(shù)據(jù)庫(kù)有更簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),更高的性能及更好的可擴(kuò)展性。但對(duì)業(yè)務(wù)需求的支持也相對(duì)有限。


應(yīng)用邏輯的業(yè)務(wù)模塊拆分

* 一個(gè)網(wǎng)站必定有多種業(yè)務(wù)模塊,比如購(gòu)物網(wǎng)站都有用戶模塊、商品模塊、訂單模塊等等,將這些業(yè)務(wù)模塊拆分并獨(dú)立維護(hù)。保證各業(yè)務(wù)模塊高內(nèi)聚低耦合,利于開(kāi)發(fā)上團(tuán)隊(duì)分工,也利于后期獨(dú)立部署運(yùn)營(yíng)


// =======================================================================================


大型網(wǎng)站架構(gòu)設(shè)計(jì)的一些價(jià)值觀:


* 大道至簡(jiǎn)。簡(jiǎn)單的設(shè)計(jì)使開(kāi)發(fā)和維護(hù)變得清晰有序

* 業(yè)務(wù)和功能的劃分和模塊化。各業(yè)務(wù)模塊,各功能模塊(接入-邏輯-存儲(chǔ))劃分清晰,高內(nèi)聚低耦合,塵歸塵土歸土

* 架構(gòu)來(lái)源于需求,而不是技術(shù)。架構(gòu)設(shè)計(jì)衡量標(biāo)準(zhǔn)是滿足用戶的產(chǎn)品需求,而不是為了技術(shù)而技術(shù)

* 架構(gòu)是演化而來(lái)的。別追求有完美的架構(gòu)設(shè)計(jì)后再上線,好的架構(gòu)往往都是不斷修改甚至推翻之后慢慢演化而來(lái)的

* 不要所有問(wèn)題都用技術(shù)來(lái)解決。有些技術(shù)上難以解決的問(wèn)題,往往可以用業(yè)務(wù)手段來(lái)解決,如12306的整點(diǎn)售票改為分時(shí)段售票,從業(yè)務(wù)上來(lái)平攤用戶請(qǐng)求量

* 衡量指標(biāo):性能、可用性、伸縮性、擴(kuò)展性、安全性。


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
《大型網(wǎng)站技術(shù)架構(gòu)》讀書(shū)筆記
《大型網(wǎng)站技術(shù)架構(gòu)》讀書(shū)筆記二:大型網(wǎng)站架構(gòu)模式
9種高性能高可用高并發(fā)的技術(shù)架構(gòu)
全是干貨!流傳出來(lái)的網(wǎng)站架構(gòu)師10年經(jīng)驗(yàn)(上)
Windows平臺(tái)分布式架構(gòu)實(shí)踐
大型網(wǎng)站技術(shù)架構(gòu)核心原理剖析
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服