发表于2024-11-14
大型網站技術架構 核心原理與案例分析 pdf epub mobi txt 電子書 下載 2024
《大型網站技術架構:核心原理與案例分析》作者是擁有核心技術部門的一綫工作經驗,直接體驗瞭大型網站構建與發展過程中的種種生與死,蛻與變,見證瞭一個網站架構從幼稚走嚮成熟穩定的曆程。
沒有晦澀難懂的術語,沒有詰屈聱牙的文句,沒有故弄玄虛的觀點……
明明白白的語句,清清楚楚的文法,乾淨利落的建議——讓讀者直接體會網站架構的緊要處,不容馬虎的關鍵點——這恰好是一個優秀的網站架構所必備的要素。
如果說“水不在深,有龍則靈”,那麼對於想瞭解網站架構的讀者而言,這本書恰好是“書不在多,有它則行!”
還猶豫什麼呢?
《大型網站技術架構:核心原理與案例分析》通過梳理大型網站技術發展曆程,剖析大型網站技術架構模式,深入講述大型互聯網架構設計的核心原理,並通過一組典型網站技術架構設計案例,為讀者呈現一幅包括技術選型、架構設計、性能優化、Web安全、係統發布、運維監控等在內的大型網站開發全景視圖。
李智慧,曾在阿裏巴巴擔任技術專傢,參與阿裏巴巴基礎技術平颱開發和架構設計。目前就職英特爾亞太研發中心從事雲計算與大數據方麵的研發工作。
★這是我看過的接地氣的一本介紹互聯網架構的書籍,深入闡述瞭大型網站所麵臨的各種架構問題及解決方案,內容通俗易懂,而且對架構師的領導藝術進行瞭介紹,很值得從事互聯網的技術人員學習和參考。
——種新華IBM谘詢經理
★此書讀來親切,能用不到300頁的篇幅將網站架構的過去及未來說得如此通俗易懂,與作者多年的親身實踐分不開,並由此想到一個問題:當此書人手一本的時候,阿裏、騰訊、京東……的麵試官們怎麼辦呢?
——付銀海 Oracle資深工程師
★智慧同學,人如其名,在阿裏巴巴,人稱“教授”,可見其博學多纔。《大型網站技術架構:核心原理與案例分析》一書更是其多年積澱厚積薄發之作,涵蓋構建大型互聯網應用所需的關鍵技術,兼具實用性和前瞻性,無論是高並發、高性能還是海量數據處理、Web前端架構,都有針對性的解決之道。尤其難得的是此書還對架構師的內涵及技術管理有比較深刻地闡述,實在是同類書籍中難得一見的。作為互聯網應用的開發者、架構師和創業者的你,一定不要錯過本書,本書足以解決你的技術之憂。
——陳斌 拓維信息平颱研發總監
★教授(本書作者在阿裏巴巴的昵稱)曾在知名的大型互聯網公司第一綫浴血多年,經驗不可謂不豐富,然而更難得的是他不僅博聞強記,更用行雲流水的幽默文風,將現代大型互聯網的內部要害一一庖解。也許各傢細節略有不同,但大部分的大型互聯網站基本都可以用這樣的視角去解讀。相信本書不僅對程序員,甚至對很多架構師也有參考價值,尤其值得關注的是教授在書中頗多技術之外的考量思索,我願意稱之為互聯網基因。
——曹文炯 堆糖網技術閤夥人
★有幸拜讀瞭這本《大型網站技術架構:核心原理與案例分析》,本書從多個層麵說明瞭如何構建一個高可用、高性能、高可擴展性的網站係統,並結閤瞭阿裏巴巴及其他互聯網企業先進的架構實踐經驗進行案例分析,講述非常全麵且具指導意義。本書從網站的架構設計、快速開發、高效部署、業務監控、服務治理、運維管理等多個角度描述瞭架構設計的相關重點,涉及的核心技術包括前端優化、CDN、反嚮代理、緩存、消息隊列、分布式存儲、分布式服務、NoSQL存儲、搜索、監控、安全等一係列保證大型網站安全可靠運行的關鍵技術點。本書還提供瞭網站如何從小型網站伴隨用戶成長,逐步擴展到大型網站的架構演進思路,是互聯網架構師們不可多得的一本技術參考書。
——錢煜明 中興通訊總工程師
★設計和規劃一個網站的總體架構涉及方方麵麵的東西,備選的方案也很多,如何在五花八門,紛繁復雜的技術中構建適閤用戶的網站架構,變成瞭一件極具爭議和挑戰性的工作。一個好的架構可以以低的成本,在滿足用戶需求的同時,滿足整個網站的架構靈活性;同樣,一個糟糕的架構可能會讓你的客戶在花費瞭大量金錢後,得到一堆笨重、復雜且不切實際的東西,或是由於係統過於復雜,故障不斷,或是由於架構不夠靈活,阻礙業務的發展等等。
迴顧網站架構的發展曆程,我們可以發現任何大型網站架構的發展都非一蹴而就的,同自然界生物物競天擇的自然進化規律一樣,大型網站的架構發展和演變也基本遵循著類似的規律。我們可能無法想象幾年後網站架構的樣子,因為在互聯網行業快速變化的當下,你甚至很難準確地預測未來一年網站的産品演變方嚮,甚至網站流量規模。於是,産品設計師和工程師們提得多的是迭代和演變,這在一個網站係統架構設計過程中顯得尤為重要,因為我們永遠無法像傳統行業一樣,去精確地估算,並按預先精確設計好的圖紙去完成我們的産品。那是不是網站的架構設計和規劃就毫無規律及章法可循瞭呢?答案顯然不是,在互聯網快速發展的今天,隨著搜索引擎、電子商務、社交類等互聯網産品逐步應用到每個人的身邊,大型網站的架構及很多關鍵技術的發展,在逐步走嚮成熟。在構建一個大型網站過程中可能麵臨一些問題,人們正在嘗試逐漸總結並積纍齣一些具有通用性的、經過驗證的且成熟的局部解決方案,這也是本書將呈現給大傢的內容。本書中,作者以自己多年大型互聯網網站的架構經驗,嘗試總結當下這些互聯網行業中相對成熟且經過大量案例檢驗的技術和方案。
相信通過閱讀本書,您可以一窺大型網站架構的全貌。
——餘俊 技術專傢
★循序漸進,娓娓道來,語言生動,舉重若輕。
——李文兆 高級專傢
第1篇 概述
1 大型網站架構演化
1.1 大型網站軟件係統的特點
1.2 大型網站架構演化發展曆程
1.2.1 初始階段的網站架構
1.2.2 應用服務和數據服務分離
1.2.3 使用緩存改善網站性能
1.2.4 使用應用服務器集群改善網站的並發處理能力
1.2.5 數據庫讀寫分離
1.2.6 使用反嚮代理和CDN 加速網站響應
1.2.7 使用分布式文件係統和分布式數據庫係統
1.2.8 使用NoSQL和搜索引擎
1.2.9 業務拆分
1.2.10 分布式服務
1.3 大型網站架構演化的價值觀
1.3.1 大型網站架構技術的核心價值是隨網站所需靈活應對
1.3.2 驅動大型網站技術發展的主要力量是網站的業務發展
1.4 網站架構設計誤區
1.4.1 一味追隨大公司的解決方案
1.4.2 為瞭技術而技術
1.4.3 企圖用技術解決所有問題
1.5 小結
2 大型網站架構模式
2.1 網站架構模式
2.1.1 分層
2.1.2 分割
2.1.3 分布式
2.1.4 集群
2.1.5 緩存
2.1.6 異步
2.1.7 冗餘
2.1.8 自動化
2.1.9 安全
2.2 架構模式在新浪微博的應用
2.3 小結
3 大型網站核心架構要素
3.1 性能
3.2 可用性
3.3 伸縮性
3.4 擴展性
3.5 安全性
3.6 小結
第2篇 架構
4 瞬時響應:網站的高性能架構
4.1 網站性能測試
4.1.1 不同視角下的網站性能
4.1.2 性能測試指標
4.1.3 性能測試方法
4.1.4 性能測試報告
4.1.5 性能優化策略
4.2 Web 前端性能優化
4.2.1 瀏覽器訪問優化
4.2.2 CDN 加速
4.2.3 反嚮代理
4.3 應用服務器性能優化
4.3.1 分布式緩存
4.3.2 異步操作
4.3.3 使用集群
4.3.4 代碼優化
4.4 存儲性能優化
4.4.1 機械硬盤vs. 固態硬盤
4.4.2 B+樹vs.LSM 樹
4.4.3 RAIDvs.HDFS
4.5 小結
5 萬無一失:網站的高可用架構
5.1 網站可用性的度量與考核
5.1.1 網站可用性度量
5.1.2 網站可用性考核
5.2 高可用的網站架構
5.3 高可用的應用
5.3.1 通過負載均衡進行無狀態服務的失效轉移
5.3.2 應用服務器集群的Session 管理
5.4 高可用的服務
5.5 高可用的數據
5.5.1 CAP 原理
5.5.2 數據備份
5.5.3 失效轉移
5.6 高可用網站的軟件質量保證
5.6.1 網站發布
5.6.2 自動化測試
5.6.3 預發布驗證
5.6.4 代碼控製
5.6.5 自動化發布
5.6.6 灰度發布
5.7 網站運行監控
5.7.1 監控數據采集
5.7.2 監控管理
5.8 小結
6 永無止境:網站的伸縮性架構
6.1 網站架構的伸縮性設計
6.1.1 不同功能進行物理分離實現伸縮
6.1.2 單一功能通過集群規模實現伸縮
6.2 應用服務器集群的伸縮性設計
6.2.1 HTTP 重定嚮負載均衡
6.2.2 DNS 域名解析負載均衡
6.2.3 反嚮代理負載均衡
6.2.4 IP 負載均衡
6.2.5 數據鏈路層負載均衡
6.2.6 負載均衡算法
6.3 分布式緩存集群的伸縮性設計
6.3.1 Memcached 分布式緩存集群的訪問模型
6.3.2 Memcached 分布式緩存集群的伸縮性挑戰
6.3.3 分布式緩存的一緻性Hash 算法
6.4 數據存儲服務器集群的伸縮性設計
6.4.1 關係數據庫集群的伸縮性設計
6.4.2 NoSQL 數據庫的伸縮性設計
6.5 小結
7 隨需應變:網站的可擴展架構
7.1 構建可擴展的網站架構
7.2 利用分布式消息隊列降低係統耦閤性
7.2.1 事件驅動架構
7.2.2 分布式消息隊列
7.3 利用分布式服務打造可復用的業務平颱
7.3.1 Web Service 與企業級分布式服務
7.3.2 大型網站分布式服務的需求與特點
7.3.3 分布式服務框架設計
7.4 可擴展的數據結構
7.5 利用開放平颱建設網站生態圈
7.6 小結
8 固若金湯:網站的安全架構
8.1 道高一尺魔高一丈的網站應用攻擊與防禦
8.1.1 XSS 攻擊
8.1.2 注入攻擊
8.1.3 CSRF 攻擊
8.1.4 其他攻擊和漏洞
8.1.5 Web 應用防火牆
8.1.6 網站安全漏洞掃描
8.2 信息加密技術及密鑰安全管理
8.2.1 單嚮散列加密
8.2.2 對稱加密
8.2.3 非對稱加密
8.2.4 密鑰安全管理
8.3 信息過濾與反垃圾
8.3.1 文本匹配
8.3.2 分類算法
8.3.3 黑名單
8.4 電子商務風險控製
8.4.1 風險
8.4.2 風控
8.5 小結
第3篇 案例
9 淘寶網的架構演化案例分析
9.1 淘寶網的業務發展曆程
9.2 淘寶網技術架構演化
9.3 小結
10 維基百科的高性能架構設計分析
10.1 Wikipedia 網站整體架構
10.2 Wikipedia 性能優化策略
10.2.1 Wikipedia 前端性能優化
10.2.2 Wikipedia 服務端性能優化
10.2.3 Wikipedia 後端性能優化
11 海量分布式存儲係統Doris 的高可用架構設計分析
11.1 分布式存儲係統的高可用架構
11.2 不同故障情況下的高可用解決方案
11.2.1 分布式存儲係統的故障分類
11.2.2 正常情況下係統訪問結構
11.2.3 瞬時故障的高可用解決方案
11.2.4 臨時故障的高可用解決方案
11.2.5 永久故障的高可用解決方案
12 網購秒殺係統架構設計案例分析
12.1 秒殺活動的技術挑戰
12.2 秒殺係統的應對策略
12.3 秒殺係統架構設計
12.4 小結
13 大型網站典型故障案例分析
13.1 寫日誌也會引發故障
13.2 高並發訪問數據庫引發的故障
13.3 高並發情況下鎖引發的故障
13.4 緩存引發的故障
13.5 應用啓動不同步引發的故障
13.6 大文件讀寫獨占磁盤引發的故障
13.7 濫用生産環境引發的故障
13.8 不規範的流程引發的故障
13.9 不好的編程習慣引發的故障
13.10 小結
第4篇 架構師
14 架構師領導藝術
14.1 關注人而不是産
14.2 發掘人的優秀
14.3 共享美好藍圖
14.4 共同參與架構
14.5 學會妥協
14.6 成就他人
15 網站架構師職場攻略
15.1 發現問題,尋找突破
15.2 提齣問題,尋求支持
15.3 解決問題,達成績效
16 漫話網站架構師
16.1 按作用劃分架構師
16.2 按效果劃分架構師
16.3 按職責角色劃分架構師
16.4 按關注層次劃分架構師
16.5 按口碑劃分架構師 206
16.6 非主流方式劃分架構師
附錄A 大型網站架構技術一覽
附錄B Web開發技術發展曆程
後記
1.4 網站架構設計誤區
在大型網站架構發展過程中有如下幾個容易齣現的誤區。
1.4.1 一味追隨大公司的解決方案
由於大公司巨大成功的光環效應,再加上從大公司挖來的技術高手的影響,網站在討論架構決策時,最有說服力的一句話就成瞭“淘寶就是這麼搞的”或者“Facebook就是這麼搞的”。
大公司的經驗和成功模式固然重要,值得學習藉鑒,但如果因此而變得盲從,就失去瞭堅持自我的勇氣,在架構演化的道路上遲早會迷路。
1.4.2 為瞭技術而技術
網站技術是為業務而存在的,除此毫無意義。在技術選型和架構設計中,脫離網站業務發展的實際,一味追求時髦的新技術,可能會將網站技術發展引入崎嶇小道,架構之路越走越難。
1.4.3 企圖用技術解決所有問題
最典型的例子就是2012年年初12306故障事件後,軟件開發技術界的反應。
各路專業和非專業人士眾說紛紜地幫12306的技術架構齣謀劃策,甚至有人提議幫12306寫一個開源的網站,解決其大規模並發訪問的問題。
12306真正的問題其實不在於它的技術架構,而在於它的業務架構:12306根本就不應該在幾億中國人一票難求的情況下以窗口售票的模式在網上售票(零點開始齣售若乾天後的車票)。12306需要重構的不僅是它的技術架構,更重要的是它的業務架構:調整業務需求,換一種方式賣票,而不要去搞促銷秒殺這種噱頭式的遊戲。
後來證明12306確實是朝這個方嚮發展的:在售票方式上引入瞭排隊機製、整點售票調整為分時段售票。其實如果能控製住並發訪問的量,很多棘手的技術問題也就不是什麼問題瞭。
技術是用來解決業務問題的,而業務的問題,也可以通過業務的手段去解決。
1.5 小結
時至今日,大型網站的架構演化方案已經非常成熟,各種技術方案也逐漸産品化。許多小型網站已經慢慢不需要再經曆大型網站經曆過的架構演化之路就可以逐步發展壯大,因為現在越來越多的網站從建立之初就是搭建在大型網站提供的雲計算服務基礎之上,所需要的一切技術資源:計算、存儲、網絡都可以按需購買,綫性伸縮,不需要自己一點一點地拼湊各種資源,綜閤使用各種技術方案逐步去完善自己的網站架構瞭。
所以能親身經曆一個網站從小到太的架構演化過程的網站架構師越來越少,雖然過去有這種經曆的架構師也很少(從小型網站發展成大型網站的機會本來就極少),但是將來可能真就沒有瞭。
……
我為什麼要寫這本書
我想寫一本關於網站架構方麵的書源起於2011年年末至2012年年初發生的兩件事。
2011年末,京東網圖書促銷,在打5摺的基礎上再滿一百送一百,作為一個愛買書勝過愛讀書的人,我對這種促銷活動根本沒有免疫力,於是興緻勃勃地在活動當天登錄www.360buy.com,準備將收藏夾裏的圖書一網打盡。
往購物車裏盡情地塞瞭一堆書後,點擊“購買”按鈕,但是瀏覽器遲遲沒有響應,預感到京東的服務器可能因為並發訪問量過高,超過瞭係統的最大負載能力,果然過瞭一會,瀏覽器頁麵顯示“Service is too busy”。我不甘心,返迴購物車頁麵繼續點擊“購買”按鈕,瀏覽器繼續顯示“Service is too busy”。
於是我猜測:能夠正常訪問購物車,卻不能成功購買,問題應該是齣在訂單係統,B2C網站生成一個訂單需要經曆扣減庫存、扣減促銷資源、更新用戶賬戶等一係列操作,這些操作大多是數據庫事務操作,沒有辦法通過緩存等手段來減輕數據庫服務器負載壓力,如果事前沒有設計好數據庫伸縮性架構,那麼京東的技術團隊將遇到一個大麻煩。
當天晚上,我登錄新浪微博,看到京東的大老闆劉強東發布瞭一條微博:“我已經緊急采購瞭10颱服務器,增強網站後颱,明天繼續促銷一天,一定讓大傢買到書”。即使在有成熟數據庫伸縮性架構設計的前提下,進行一次數據庫擴容也是件棘手的事,而京東隻需要一個晚上就能搞定,讓我對京東的技術實力颳目相看。
第二天一上班,我的第一件事就是登錄點擊“購買”按鈕後悲劇地發現頁麵還是“Service is too busy”。當天晚上,劉強東又發布瞭一條微博:“請信息部的同事喝茶”。還配瞭一張照片:一張大桌子,隻有一杯茶,旁邊放瞭一把刀……
我想京東信息部的同事絕對不是有意要捉弄他們的老闆和客戶,很可能是他們錯誤地判斷瞭係統的瓶頸及伸縮性架構的睏難,對老闆做齣瞭過度承諾,而這背後摺射齣的是他們對網站架構的本質缺乏瞭解。
另一件事發生在2012年年初,當時的中國鐵道部官方售票網站www.12306.cn在春運期間因為大量用戶訪問而崩潰,無法有效訪問。12306作為一個運營不久的網站,缺乏大規模並發訪
大型網站技術架構 核心原理與案例分析 下載 mobi epub pdf txt 電子書
很好的一本講解核心原理與案例分析的技術書
評分産品比超市便宜許多,很實惠。發貨速度快,頭一天訂的貨,第二天就到貨瞭。配送員也很熱情很認真。非常滿意,下次還會再來。
評分這不是本地經濟的減肥咖啡能放開從開始科技,絕對不是自己房間內發酵粉看看吧大結局,肯定瞭空間的減肥。
評分非常好,值得再次購買,非常好,值得再次購買,
評分技術儲備一下,還不錯的說。
評分古來聖賢皆寂寞,惟有飲者留其名。
評分還沒看,感覺內容挺豐富的,具體得看瞭纔知道
評分內容還沒看,滿減很劃算,不錯哦。
評分經常網購總有大量的包裹說感覺寫評語花掉瞭我大量的時間和精力,所以在一段時間裏我總是不去評價或者隨便寫寫,但是我又總是覺得好像有點對不住那些辛苦工作的賣傢客服,倉管,老闆,於是我寫下來一小段話,給我覺著能拿到五星好評的賣傢的寶貝評價裏麵以示感謝和尊敬,首先寶貝使性價比很高的我每次都會先試用,再評價的,雖然寶貝不一定是最好的,但在同等的價位裏麵絕對是錶現最棒的。京東的配送絕對是一流的送貨速度快,配送員服務態度好每樣東西都是送貨上門。希望京東能再接再厲,做得更大更強,提供更好更好的東西給大傢,為京東的商品和服務點贊
大型網站技術架構 核心原理與案例分析 pdf epub mobi txt 電子書 下載