解讀大型網(wǎng)站的演變過(guò)程

有一次去圖書(shū)館看書(shū),遇到一個(gè)剛畢業(yè)不久岸夯,在圖書(shū)館學(xué)習(xí)php麻献,我就和他聊天,他期間問(wèn)到一個(gè)問(wèn)題“如何開(kāi)發(fā)一個(gè)大型網(wǎng)站”猜扮,這個(gè)問(wèn)題嚇不倒我呀勉吻,我了解一些了,當(dāng)時(shí)就和他連說(shuō)帶比劃了一次旅赢,回家了我仔細(xì)又想了想齿桃,覺(jué)得還是寫(xiě)篇文章記錄下

任何網(wǎng)站都是從一個(gè)小網(wǎng)站 演變成 一個(gè)復(fù)雜的網(wǎng)站的(后面我們用成熟的網(wǎng)站表示大型網(wǎng)站)

才開(kāi)始一個(gè)網(wǎng)站不可能非常成熟的,都是隨著用戶量的增長(zhǎng)煮盼,業(yè)務(wù)功能的不斷擴(kuò)展逐漸完善的

第一:最初的網(wǎng)站架構(gòu)

這個(gè)時(shí)候應(yīng)該是最簡(jiǎn)單的架構(gòu)了短纵,應(yīng)用程序,文件僵控,數(shù)據(jù)庫(kù)香到,web軟件 都放在一臺(tái)服務(wù)器上了,如下圖(這就是我現(xiàn)在的基本架構(gòu)了报破,嗯哼悠就,就是小網(wǎng)站了)

第二:應(yīng)用程序,文件充易,數(shù)據(jù)庫(kù)分離

隨著業(yè)務(wù)的發(fā)展梗脾,一臺(tái)服務(wù)器已經(jīng)滿足不了性能要求了,所以這個(gè)時(shí)候?qū)?應(yīng)用程序盹靴,文件炸茧,數(shù)據(jù)庫(kù)分別放在單獨(dú)的服務(wù)器上

第三:可以適當(dāng)使用緩存改善網(wǎng)站性能

提升硬件的配置同時(shí)帆疟,我們也可以使用軟件做性能優(yōu)化的,這里我們重點(diǎn)說(shuō)的是數(shù)據(jù)庫(kù)緩存宇立,目前可以使用memcache/redis等軟件

第四:使用集群改善應(yīng)用服務(wù)器性能

應(yīng)用程序是網(wǎng)站的入口踪宠,業(yè)務(wù)量很多的時(shí)候,請(qǐng)求量很大妈嘹,單臺(tái)應(yīng)用服務(wù)器就承受不聊了柳琢,通常我們可以使用負(fù)載均衡服務(wù)器來(lái)分發(fā)請(qǐng)求(也可以說(shuō)是應(yīng)用程序集群了),我比較熟悉或者一直使用的就是nginx了润脸,如下圖

下面這段話是從別人看到的柬脸,我覺(jué)得概括的挺對(duì)的,我個(gè)人還是主要使用nginx毙驯,haproxy了解過(guò)倒堕,

常用的負(fù)載均衡技術(shù)硬件的有F5,價(jià)格比較貴爆价,軟件的有LVS垦巴、Nginx、HAProxy铭段。LVS是四層負(fù)載均衡骤宣,根據(jù)目標(biāo)地址和端口選擇內(nèi)部服務(wù)器,Nginx和HAProxy是七層負(fù)載均衡序愚,可以根據(jù)報(bào)文內(nèi)容選擇內(nèi)部服務(wù)器憔披,因此LVS分發(fā)路徑優(yōu)于Nginx和HAProxy,性能要高些爸吮,而Nginx和HAProxy則更具配置性芬膝,如可以用來(lái)做動(dòng)靜分離(根據(jù)請(qǐng)求報(bào)文特征,選擇靜態(tài)資源服務(wù)器還是應(yīng)用服務(wù)器)形娇。

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

隨著用戶量的增加锰霜,數(shù)據(jù)庫(kù)會(huì)逐漸成為瓶頸,常用的手段是讀寫(xiě)分離(具體的含義大家可以百度google)埂软,還有常用的拆表(水平拆表和垂直拆表锈遥,我比較喜歡說(shuō) 分表 和 分庫(kù))纫事,mysql數(shù)據(jù)庫(kù)還有個(gè)partition勘畔,沒(méi)玩過(guò),只聽(tīng)DBA說(shuō)過(guò)了

水平拆表:為了解決單張表的壓力問(wèn)題丽惶。一個(gè)表拆成多張表炫七,例如用戶表,根據(jù)uid 分表(例如 uid % 10)

垂直拆表:為了解決表與表的IO競(jìng)爭(zhēng)钾唬,將相關(guān)表放入一個(gè)庫(kù)万哪,例如商品表和訂單表放入另一庫(kù)侠驯,用戶表放入另一個(gè)庫(kù)

第六:應(yīng)用程序業(yè)務(wù)拆分

隨著業(yè)務(wù)的發(fā)展,項(xiàng)目非常大奕巍,代碼也非常臃腫了吟策,這時(shí)候業(yè)務(wù)急需分事業(yè)部,例如問(wèn)答的止,博客檩坚,論壇等都分成獨(dú)立部門(mén)

就需要分業(yè)務(wù)了,

第七:使用CDN,squid诅福,varnish等提高網(wǎng)站性能

我說(shuō)下cdn匾委,squid和varnish請(qǐng)各位有興趣自己查閱相關(guān)資料

CDN就是內(nèi)容分發(fā)網(wǎng)絡(luò),為什么存在氓润?是因?yàn)閷?duì)于網(wǎng)絡(luò)公司赂乐,一般 自己的服務(wù)器都會(huì)在一個(gè)地方,例如上海機(jī)房咖气,例如杭州機(jī)房了挨措,但是網(wǎng)站是對(duì)全國(guó)來(lái)至全世界提供服務(wù)的,所以網(wǎng)站的訪問(wèn)速度是非常重要的指標(biāo)崩溪,cdn服務(wù)商就是在全國(guó)很多地方都有機(jī)房运嗜,每當(dāng)用戶訪問(wèn) 網(wǎng)站 CDN會(huì)直接從最近的機(jī)房返回網(wǎng)頁(yè)內(nèi)容了

目前我個(gè)人博客有使用七牛CDN,淺談 舉家搬遷靜態(tài)文件到CDN

CDN服務(wù)的詳細(xì)介紹我會(huì)在另一篇文章介紹,請(qǐng)關(guān)注博文

總結(jié) 成熟大型的網(wǎng)站都是在不斷優(yōu)化的悯舟,都是隨著業(yè)務(wù)的發(fā)展慢慢變化的

原文網(wǎng)站:http://www.vincentguo.cn/default/53.html(本人只轉(zhuǎn)發(fā)博客原創(chuàng)文章)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末担租,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子抵怎,更是在濱河造成了極大的恐慌奋救,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件反惕,死亡現(xiàn)場(chǎng)離奇詭異尝艘,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)姿染,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)背亥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人悬赏,你說(shuō)我怎么就攤上這事狡汉。” “怎么了闽颇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵盾戴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我兵多,道長(zhǎng)尖啡,這世上最難降的妖魔是什么橄仆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮衅斩,結(jié)果婚禮上盆顾,老公的妹妹穿的比我還像新娘。我一直安慰自己畏梆,他們只是感情好椎扬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著具温,像睡著了一般蚕涤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铣猩,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天揖铜,我揣著相機(jī)與錄音,去河邊找鬼达皿。 笑死天吓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的峦椰。 我是一名探鬼主播龄寞,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼汤功!你這毒婦竟也來(lái)了物邑?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤滔金,失蹤者是張志新(化名)和其女友劉穎色解,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體餐茵,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡科阎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了忿族。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锣笨。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖道批,靈堂內(nèi)的尸體忽然破棺而出错英,到底是詐尸還是另有隱情,我是刑警寧澤屹徘,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布走趋,位于F島的核電站,受9級(jí)特大地震影響噪伊,放射性物質(zhì)發(fā)生泄漏簿煌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一鉴吹、第九天 我趴在偏房一處隱蔽的房頂上張望姨伟。 院中可真熱鬧,春花似錦豆励、人聲如沸夺荒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)技扼。三九已至,卻和暖如春嫩痰,著一層夾襖步出監(jiān)牢的瞬間剿吻,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工串纺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丽旅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓纺棺,卻偏偏與公主長(zhǎng)得像榄笙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祷蝌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 大型網(wǎng)站數(shù)據(jù)庫(kù)優(yōu)化及淺析大型網(wǎng)站的架構(gòu) 2015-03-27 09 千萬(wàn)人同時(shí)訪問(wèn)的網(wǎng)站茅撞,一般是有很多個(gè)數(shù)據(jù)庫(kù)同時(shí)...
    wokeman閱讀 1,641評(píng)論 1 22
  • 前言 一個(gè)成熟的大型網(wǎng)站(如淘寶、京東等)的系統(tǒng)架構(gòu)并不是開(kāi)始設(shè)計(jì)就具備完整的高性能巨朦、高可用乡翅、安全等特性,它總是隨...
    AllenTeng閱讀 222評(píng)論 0 1
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理罪郊,服務(wù)發(fā)現(xiàn)蠕蚜,斷路器,智...
    卡卡羅2017閱讀 134,628評(píng)論 18 139
  • 前言 一個(gè)成熟的大型網(wǎng)站(如淘寶悔橄、京東等)的系統(tǒng)架構(gòu)并不是開(kāi)始設(shè)計(jì)就具備完整的高性能靶累、高可用、安全等特性癣疟,它總是隨...
    魔法師_閱讀 185評(píng)論 0 0
  • 我們這個(gè)歲數(shù)的人挣柬,如果你問(wèn)他小時(shí)候最盼著什么?十有八九會(huì)是過(guò)年睛挚。 每到過(guò)年的檔口邪蛔,趕集的日子變得特別重要。臘月二十...
    傲然呆閱讀 172評(píng)論 0 0