1皮迟、大型網(wǎng)站軟件系統(tǒng)特點(diǎn):
?? 高并發(fā)授段,大流量
? 高可用:7*24小時(shí)不間斷
?? 海量數(shù)據(jù) ? 用戶分布廣泛兜喻,網(wǎng)絡(luò)情況復(fù)雜
?? 安全環(huán)境惡劣:黑客攻擊,信息泄露
?? 需求快速變更埋虹,發(fā)布頻繁
?? 漸進(jìn)式發(fā)展:大型系統(tǒng)都是從小網(wǎng)站開始逐漸發(fā)展的
?2猜憎、大型網(wǎng)站架構(gòu)發(fā)展歷程:
?1)初始階段: -應(yīng)用程序、數(shù)據(jù)庫搔课、文件等所有資源都在一臺(tái)服務(wù)器上胰柑。
?2)應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離(緩解存儲(chǔ)空間不足問題): -應(yīng)用服務(wù)器處理大量業(yè)務(wù)邏輯(高性能CPU),數(shù)據(jù)庫服務(wù)器快速磁盤檢索和數(shù)據(jù)緩存(硬盤爬泥、內(nèi)存)柬讨,文件服務(wù)器需要存儲(chǔ)大量用戶上傳的文件(更大硬盤)
?3)使用緩存改善網(wǎng)站性能(緩解數(shù)據(jù)庫訪問壓力): -80%的業(yè)務(wù)訪問集中在20%的數(shù)據(jù)上。把小部分?jǐn)?shù)據(jù)緩存在內(nèi)存中袍啡,減少數(shù)據(jù)庫訪問壓力踩官。 -兩種緩存:應(yīng)用服務(wù)器上的本地緩存(訪問速度更快,受內(nèi)存限制)境输、分布式緩存服務(wù)器上的遠(yuǎn)程緩存(集群蔗牡,部署大內(nèi)存服務(wù)器)颖系。
?4)使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力(解決單一應(yīng)用服務(wù)器請(qǐng)求有限問題) 負(fù)載均衡調(diào)度服務(wù)器,將請(qǐng)求分發(fā)到應(yīng)用服務(wù)器集群中任何一臺(tái)服務(wù)器上辩越。
?5)數(shù)據(jù)庫讀寫分離(解決數(shù)據(jù)庫負(fù)載壓力過高問題): 主流數(shù)據(jù)庫提供主從熱備功能集晚,配置兩臺(tái)數(shù)據(jù)庫主從關(guān)系,可將一臺(tái)數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)更新到另一臺(tái)区匣,實(shí)現(xiàn)讀寫分離。通過應(yīng)用服務(wù)器端專門的數(shù)據(jù)訪問模塊蒋院,寫數(shù)據(jù)訪問主數(shù)據(jù)庫亏钩,讀數(shù)據(jù)訪問從數(shù)據(jù)庫。
6)反向代理和CDN加速網(wǎng)站響應(yīng)(網(wǎng)絡(luò)環(huán)境復(fù)雜欺旧,加速網(wǎng)站訪問速度姑丑,減輕后端壓力) CDN和反向代理基本原理都是緩存。 CDN:部署在網(wǎng)絡(luò)提供商機(jī)房辞友,用戶請(qǐng)求時(shí)從最近網(wǎng)絡(luò)提供商機(jī)房獲取數(shù)據(jù) 反向代理:部署在網(wǎng)站中心機(jī)房栅哀,用戶請(qǐng)求達(dá)到中心機(jī)房后先訪問反向代理服務(wù)器 問題:CDN、反向代理服務(wù)器都存什么類型的數(shù)據(jù)称龙?
?7)分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng) 分布式數(shù)據(jù)庫是網(wǎng)站數(shù)據(jù)庫拆分的最后手段留拾,只有在單表數(shù)據(jù)規(guī)模非常大的情況使用。更常用的是業(yè)務(wù)分庫鲫尊,不同業(yè)務(wù)的數(shù)據(jù)部署在不同物理服務(wù)器上痴柔。
?8)使用NoSQL和搜索引擎(非數(shù)據(jù)庫查詢技術(shù)) NoSQL和搜索引擎對(duì)可伸縮的分布式特性具有更好的支持。應(yīng)用服務(wù)器通過統(tǒng)一的數(shù)據(jù)訪問模塊訪問不同數(shù)據(jù)源數(shù)據(jù)疫向。
?9)業(yè)務(wù)拆分 分而治之:將整個(gè)網(wǎng)站業(yè)務(wù)分成不同產(chǎn)品線咳蔚。 一個(gè)網(wǎng)站拆分成不同應(yīng)用,每個(gè)應(yīng)用獨(dú)立部署維護(hù)搔驼。應(yīng)用之間通過超鏈接建立關(guān)系谈火,也可通過消息隊(duì)列進(jìn)行數(shù)據(jù)分發(fā)。最多的還是通過訪問同一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)來構(gòu)成關(guān)聯(lián)的完整關(guān)系舌涨。
?10)分布式服務(wù) 每個(gè)應(yīng)用系統(tǒng)都需要執(zhí)行許多相同業(yè)務(wù)操作糯耍,可將共用業(yè)務(wù)提取出來獨(dú)立部署。由這些可復(fù)用的業(yè)務(wù)鏈接數(shù)據(jù)庫囊嘉,提供公用業(yè)務(wù)服務(wù)谍肤,應(yīng)用系統(tǒng)只管理用戶界面,通過分布式服務(wù)調(diào)用共用業(yè)務(wù)服務(wù)哗伯。