《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》學(xué)習(xí)筆記 01

本系列來(lái)源于《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》學(xué)習(xí)筆記總結(jié),本文為本書(shū)“第1篇 概述”的總結(jié)秕衙。


  • 介紹《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》的全書(shū)結(jié)構(gòu)

  • 第一部分概述的主題內(nèi)容:大型網(wǎng)站架構(gòu)演化鹦牛、架構(gòu)模式、架構(gòu)要素

  • 筆記為知識(shí)點(diǎn)摘要礼殊、總結(jié)针史,對(duì)于知識(shí)結(jié)構(gòu)的總結(jié)


作為一個(gè)非技術(shù)出身的項(xiàng)目經(jīng)理婚陪,工作中遇到的各類(lèi)技術(shù)問(wèn)題往往是困擾我們的一個(gè)大問(wèn)題。對(duì)于這個(gè)問(wèn)題智润,除了在工作中頻繁與技術(shù)同事溝通,項(xiàng)開(kāi)發(fā)的同事學(xué)習(xí)之外咐柜,也需要自己在工作之余不停的補(bǔ)充相關(guān)技術(shù)知識(shí)为狸,能夠做到聽(tīng)懂同事在說(shuō)什么辐棒,從邏輯上理解他們的解決方案泰涂。項(xiàng)目中經(jīng)常涉及系統(tǒng)架構(gòu)辐怕,閱讀寄疏、協(xié)助撰寫(xiě)架構(gòu)文檔驳棱。最近的一個(gè)項(xiàng)目是需要為客戶(hù)開(kāi)發(fā)一個(gè)中型網(wǎng)站蹈胡,了解網(wǎng)站相關(guān)的架構(gòu)知識(shí)罚渐,是學(xué)習(xí)這本書(shū)的目標(biāo)。

全書(shū)結(jié)構(gòu)

本書(shū)從結(jié)構(gòu)上來(lái)說(shuō)主要分為以下三個(gè)部分:

  1. 概述大型網(wǎng)站的架構(gòu)演化源织、模式和要素

  2. 詳述大型網(wǎng)站的高性能架構(gòu)谈息、高可用架構(gòu),伸縮性架構(gòu)逻炊、可擴(kuò)展架構(gòu)和安全架構(gòu)

  3. 案例分析:淘寶余素、維基百科威根、Doris医窿、網(wǎng)購(gòu)秒殺和大型網(wǎng)站典型故障案例分析

  4. 架構(gòu)師的領(lǐng)導(dǎo)藝術(shù)、職場(chǎng)攻略等

我的學(xué)習(xí)和筆記的重點(diǎn)集中在第一和第二部分及第三部分的幾個(gè)案例。


53FF9217-77FA-4756-8831-15833433F4AC.png

第1篇 概述

本篇宗要介紹大型網(wǎng)站架構(gòu)的演進(jìn)歷程棺榔,構(gòu)架的基本模式和核心要素症歇。

BCAE1315-6488-4046-98A4-E8585B93C9E0.png

1 大型網(wǎng)站架構(gòu)演化

1.1 大型網(wǎng)站軟件系統(tǒng)的特點(diǎn)

  • 高并發(fā)激捏,大流量

  • 高可用

  • 海量數(shù)據(jù)

  • 用戶(hù)分布廣泛远舅,網(wǎng)絡(luò)情況復(fù)雜

  • 需求快速變更,發(fā)布頻繁

  • 漸進(jìn)式發(fā)展

1.2 大型網(wǎng)站架構(gòu)演化發(fā)展歷程

大型網(wǎng)站架構(gòu)的演化歷程基本經(jīng)歷從小到大图柏,從多到少序六,從簡(jiǎn)單到復(fù)雜的過(guò)程蚤吹。根據(jù)業(yè)務(wù)的需求和企業(yè)的實(shí)際情況選擇需要的架構(gòu)模式

大型網(wǎng)站演化歷程.png

1.3 大型網(wǎng)站架構(gòu)演化的價(jià)值觀

在網(wǎng)站還很小的時(shí)候就去追求網(wǎng)站的架構(gòu)師舍本逐末,得不償失的距辆。大型網(wǎng)站架構(gòu)技術(shù)的核心價(jià)值是隨網(wǎng)站所需靈活應(yīng)對(duì)余佃,遵循從無(wú)到有,從小到大,慢慢演化椭懊。驅(qū)動(dòng)大型網(wǎng)站技術(shù)發(fā)展的主要力量是網(wǎng)站的業(yè)務(wù)發(fā)展诸蚕。

1.4 網(wǎng)站架構(gòu)設(shè)計(jì)誤區(qū)

  • 一味追隨大公司的解決方案

  • 為了技術(shù)而技術(shù)

  • 企圖用技術(shù)解決所有問(wèn)題:業(yè)務(wù)問(wèn)題也可以通過(guò)業(yè)務(wù)的方式解決

2 大型網(wǎng)站架構(gòu)模式

2.1 網(wǎng)站架構(gòu)模式

本書(shū)中網(wǎng)站的架構(gòu)模式介紹的主要有:分層、分割背犯、分布式倔矾、集群禁熏、緩存、異步铅忿、冗余享言、自動(dòng)化、安全

9CD65058-E857-4840-9FF7-A22E79B073A6.png

1. 分層

將系統(tǒng)在橫向維度切分,每個(gè)維度負(fù)責(zé)體格相對(duì)單一的職責(zé)驶冒,然后通過(guò)上層對(duì)下層的一開(kāi)和調(diào)用組成一個(gè)完整的系統(tǒng)诅炉。大型網(wǎng)站架構(gòu)講系統(tǒng)分成應(yīng)用層,服務(wù)層痹扇,數(shù)據(jù)層。

Image 20200824 072531.png

優(yōu)點(diǎn):便于分工開(kāi)發(fā)和維護(hù)勉痴,保持獨(dú)立性

挑戰(zhàn):合理規(guī)劃層次邊界和接口,禁止跨層次的調(diào)用和逆向調(diào)用乡话。

2. 分割

縱向切分颅停,包裝成高內(nèi)聚低耦合的模塊單元

3. 分布式

將不同模塊部署在不同的服務(wù)器上喊熟,通過(guò)遠(yuǎn)程調(diào)用協(xié)調(diào)工作柏靶,使用更多計(jì)算機(jī)完成同樣的功能

4. 集群

多臺(tái)服務(wù)器部署相同應(yīng)用構(gòu)成一個(gè)集群炬转,通過(guò)負(fù)載均衡設(shè)備供圖對(duì)外提供服務(wù)。

5. 緩存

緩存是改善軟件性能的第一手段街佑,方法有如下幾種:

  • CDN:內(nèi)容分發(fā)網(wǎng)絡(luò)磁携,部署在距離終端用戶(hù)最近的網(wǎng)絡(luò)服務(wù)商,緩存網(wǎng)站的一些靜態(tài)資源

  • 反向代理:部署在網(wǎng)站的前端统诺,當(dāng)用戶(hù)請(qǐng)求到達(dá)網(wǎng)站的數(shù)據(jù)中心時(shí),最先訪(fǎng)問(wèn)反向代理挺物,緩存靜態(tài)資源

  • 本地緩存:應(yīng)用服務(wù)器本地緩存熱點(diǎn)數(shù)據(jù)

  • 分布式緩存:數(shù)據(jù)量龐大,本地緩存內(nèi)存不足,將數(shù)據(jù)緩存在一個(gè)專(zhuān)門(mén)的分布式緩存集群中

6. 異步

異步是將一個(gè)業(yè)務(wù)的操作分成多個(gè)階段惕虑,每個(gè)階段之間通過(guò)共享數(shù)據(jù)的方式異步執(zhí)行進(jìn)行協(xié)作。

異步消息隊(duì)列還有如下特性:

  • 提高系統(tǒng)可用性

  • 加快網(wǎng)站響應(yīng)速度

  • 消除并發(fā)訪(fǎng)問(wèn)高峰

7. 冗余

數(shù)據(jù)冗余備份:

  • 冷備份:數(shù)據(jù)庫(kù)定期備份

  • 熱備份:數(shù)據(jù)庫(kù)主從分離

8. 自動(dòng)化

主要集中在發(fā)布暗膜、運(yùn)維方面

  • 自動(dòng)化發(fā)布

  • 自動(dòng)化監(jiān)控

9. 安全

互聯(lián)網(wǎng)的開(kāi)放特性使得在網(wǎng)站架構(gòu)上有很多安全機(jī)制

3 大型網(wǎng)站核心架構(gòu)要素

除了當(dāng)前的系統(tǒng)功能需求外,軟件架構(gòu)還需要關(guān)注性能桦山、可用性攒射、伸縮性恒水、擴(kuò)展性和安全性這5個(gè)架構(gòu)。

1FCCE1FF-BE41-458D-BF66-F6A1017978EF.png

3.1 性能

對(duì)于用戶(hù)來(lái)說(shuō)饲齐,一個(gè)網(wǎng)站的性能是非常重要的指標(biāo)。用戶(hù)無(wú)法忍受反應(yīng)慢的網(wǎng)站捂人。優(yōu)化網(wǎng)站性能的手段有:

  • 瀏覽器:瀏覽器緩存御雕,頁(yè)面壓縮,合理布局頁(yè)面酸纲,減少cookie傳輸

  • CDN

  • 本地緩存和分布式緩存

  • 異步操作

  • 集群服務(wù)器

  • 代碼層面可以使用多線(xiàn)程、改善內(nèi)存管理等手段優(yōu)化性能

  • 數(shù)據(jù)庫(kù)服務(wù)器端瑟匆,索引、緩存愁溜、SQL優(yōu)化等手段疾嗅,或NoSQL

衡量網(wǎng)站性能的指標(biāo):

  • 響應(yīng)時(shí)間

  • TPS,QPS等

  • 系統(tǒng)性能計(jì)數(shù)器

3.2 可用性

高可用設(shè)計(jì)的目標(biāo)就是當(dāng)服務(wù)器宕機(jī)的時(shí)候代承,服務(wù)或應(yīng)用依然可以使用。

網(wǎng)站高可用的主要手段是冗余渐扮。

  • 應(yīng)用服務(wù)器,多臺(tái)服務(wù)器通過(guò)負(fù)載均衡組成一個(gè)集群墓律,任何一臺(tái)服務(wù)器宕機(jī)膀估,只需把請(qǐng)求切換到其他服務(wù)器就可以實(shí)現(xiàn)高可用。

  • 存儲(chǔ)服務(wù)器玖像,對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)備份

3.3 伸縮性

伸縮性是指通過(guò)不斷向集群中加入服務(wù)器的手段來(lái)緩解不斷上升的用戶(hù)并發(fā)訪(fǎng)問(wèn)壓力和不斷增長(zhǎng)的數(shù)據(jù)存儲(chǔ)需求。

衡量架構(gòu)伸縮性的主要標(biāo)準(zhǔn)就是是否可以用多臺(tái)服務(wù)器構(gòu)建集群,是否容易向集群中添加新的服務(wù)器捐寥。加入新的服務(wù)器后是否可以提供和原來(lái)的服務(wù)器無(wú)差別的服務(wù)。集群中可容納的總的服務(wù)器數(shù)量是否有限制握恳。

3.4 擴(kuò)展性

衡量網(wǎng)站架構(gòu)擴(kuò)展性好壞的主要標(biāo)準(zhǔn)就是在網(wǎng)站增加新的業(yè)務(wù)產(chǎn)品時(shí)瞒窒,是否可以實(shí)現(xiàn)對(duì)現(xiàn)有產(chǎn)品透明無(wú)影響乡洼,不需要任何改動(dòng)或者很少改動(dòng)既有業(yè)務(wù)功能就可以上線(xiàn)新產(chǎn)品崇裁。

網(wǎng)站可伸縮架構(gòu)的主要手段是事件驅(qū)動(dòng)架構(gòu)分布式服務(wù)束昵。

  • 事件驅(qū)動(dòng)架構(gòu)在網(wǎng)站通常利用消息隊(duì)列實(shí)現(xiàn),消息的處理者作為消費(fèi)者從消息隊(duì)列中獲取消息進(jìn)行處理锹雏。

  • 分布式服務(wù)則是將業(yè)務(wù)和可服用服務(wù)分離開(kāi)來(lái)巴比,通過(guò)分布式服務(wù)框架調(diào)用

3.5 安全性

衡量網(wǎng)站安全架構(gòu)的標(biāo)準(zhǔn)就是針對(duì)現(xiàn)存和潛在的各種攻擊和竊密手段,是否有可靠的應(yīng)對(duì)策略轻绞。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市佣耐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌兼砖,老刑警劉巖奸远,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掖鱼,死亡現(xiàn)場(chǎng)離奇詭異然走,居然都是意外死亡戏挡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)褐墅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)拆檬,“玉大人,你說(shuō)我怎么就攤上這事竟贯。” “怎么了逝钥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我持际,道長(zhǎng)沃琅,這世上最難降的妖魔是什么蜘欲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮姥份,結(jié)果婚禮上郭脂,老公的妹妹穿的比我還像新娘。我一直安慰自己澈歉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布闷祥。 她就那樣靜靜地躺著娱颊,像睡著了一般凯砍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悟衩,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音栓拜,去河邊找鬼。 笑死幕与,一個(gè)胖子當(dāng)著我的面吹牛挑势,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啦鸣,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼诫给!你這毒婦竟也來(lái)了香拉?” 一聲冷哼從身側(cè)響起中狂,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胃榕,沒(méi)想到半個(gè)月后盛险,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苦掘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鸟蜡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片膜赃。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖跳座,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情泣矛,我是刑警寧澤疲眷,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布您朽,位于F島的核電站,受9級(jí)特大地震影響哗总,放射性物質(zhì)發(fā)生泄漏几颜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一蛋哭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧涮母,春花似錦谆趾、人聲如沸叛本。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)跷叉。三九已至吠勘,卻和暖如春性芬,著一層夾襖步出監(jiān)牢的瞬間剧防,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工峭拘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俊庇,地道東北人狮暑。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓辉饱,卻偏偏與公主長(zhǎng)得像搬男,于是被迫代替她去往敵國(guó)和親彭沼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缔逛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356