大型網(wǎng)站架構(gòu)設(shè)計_第1頁
大型網(wǎng)站架構(gòu)設(shè)計_第2頁
大型網(wǎng)站架構(gòu)設(shè)計_第3頁
大型網(wǎng)站架構(gòu)設(shè)計_第4頁
大型網(wǎng)站架構(gòu)設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1 1 架構(gòu)規(guī)定了軟件的高層劃分及各部分間的交互架構(gòu)規(guī)定了軟件的高層劃分及各部分間的交互架構(gòu)不是軟件,但架構(gòu)決策體現(xiàn)于軟件平臺和框架之中架構(gòu)的優(yōu)劣決定了業(yè)務(wù)應(yīng)用系統(tǒng)的實施能力和發(fā)展空間技術(shù)搭臺,業(yè)務(wù)唱戲 架構(gòu)搭臺,應(yīng)用唱戲架構(gòu)永遠(yuǎn)在隨著業(yè)務(wù)的發(fā)展而變遷架構(gòu)永遠(yuǎn)在隨著業(yè)務(wù)的發(fā)展而變遷 擁抱變化!擁抱變化!什么是架構(gòu)?架構(gòu)變遷更多用戶更多數(shù)據(jù)更多功能硬件成本人力成本質(zhì)量成本提高提高收益收益節(jié)約節(jié)約成本成本業(yè)務(wù)發(fā)展何謂架構(gòu)?DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2 2 大型網(wǎng)站項目的開發(fā)步驟 雙向個性化的客房需求 溝通和需求理解 網(wǎng)站市場定位、風(fēng)格、功能

2、和 營銷顧問與策劃 技術(shù)路線確定、網(wǎng)站設(shè)計 (欄目、 美工、 網(wǎng)頁、 程序、 數(shù)據(jù)庫) 網(wǎng)站制作 (欄目、 美工、 網(wǎng)頁、 程序、 數(shù)據(jù)庫) 網(wǎng)站測試、系統(tǒng)集成 系統(tǒng)性能優(yōu)化、 網(wǎng)站托管、 管理服務(wù) 網(wǎng)站內(nèi)容維護(hù)、系統(tǒng)運(yùn)行維護(hù) 1、客戶需求說明 2、合作意向 1、互聯(lián)網(wǎng)業(yè)務(wù)顧問 2、網(wǎng)站業(yè)務(wù)和市場定位 3、確定網(wǎng)站的風(fēng)格和功能 4、網(wǎng)站群配套的廣告方案 1、確定技術(shù)路線和平臺 2、網(wǎng)站欄目等各環(huán)節(jié)的設(shè)計 網(wǎng)站制作和設(shè)計實現(xiàn) 1、網(wǎng)站測試上傳 2、數(shù)據(jù)庫托管方案 3、管理服務(wù)方案 1、網(wǎng)站內(nèi)容維護(hù) 2、網(wǎng)站運(yùn)行維護(hù) 3、管理服務(wù)實施 網(wǎng)站策劃 整體設(shè)計 網(wǎng)頁編程 數(shù)據(jù)庫 同步進(jìn)行 網(wǎng)站推廣 網(wǎng)站

3、維護(hù) DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 3 3 大型網(wǎng)站架構(gòu)設(shè)計方案最全面的門戶網(wǎng)站架構(gòu)設(shè)計方案.docDHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 4 4 架構(gòu)師應(yīng)具備的概要技能架構(gòu)架構(gòu)技術(shù)領(lǐng)域知識業(yè)務(wù)領(lǐng)域知識流程流程關(guān)注人和方法組織組織溝通能力商業(yè)商業(yè)協(xié)助產(chǎn)品規(guī)劃DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 5 5 大型網(wǎng)站架構(gòu)的目標(biāo)與挑戰(zhàn)網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)架構(gòu)設(shè)計理論與原則討論及總結(jié)DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 6 6 大型網(wǎng)站架構(gòu)的目標(biāo)與挑戰(zhàn)網(wǎng)站架構(gòu)目標(biāo)與挑戰(zhàn) 每個目標(biāo)背后面臨著技術(shù)、設(shè)計、維護(hù)等諸多方面的挑戰(zhàn)。 而目標(biāo)本身的期望值也會根據(jù)實際情況進(jìn)行調(diào)整,這也意味著

4、網(wǎng)站架構(gòu)建設(shè)是個不斷調(diào)整的過程。負(fù)載均衡數(shù)據(jù)備份異地容災(zāi)。高速緩存并行計算異地鏡像。開發(fā)框架多層設(shè)計業(yè)務(wù)分割。DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 7 7 大型網(wǎng)站架構(gòu)的目標(biāo)與挑戰(zhàn)網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)架構(gòu)設(shè)計理論與原則討論及總結(jié)DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 8 8 網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)Step1Web動靜態(tài)資源分離及其與DB物理分離n優(yōu)點(diǎn):“簡單”、安全性提高n缺點(diǎn):存在單點(diǎn),談不上高可用性(high availability架構(gòu)目標(biāo))n技術(shù)點(diǎn):應(yīng)用設(shè)計要保證可擴(kuò)展(framework很重要Spring/Beetle)、Web Server動/靜態(tài)資源分離Web Ser

5、ver(ApacheNginxIISJBoss)、Database Server(MysqlOracleRedis)DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 9 9 Step1技術(shù)點(diǎn)Web動靜態(tài)資源分離img,doc,js,css等靜態(tài)資源使用單獨(dú)的Web HTTP Server處理請求動態(tài)頁面靜態(tài)化處理網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1010 Step2采取緩存處理n優(yōu)點(diǎn):簡單有效、維護(hù)方便n缺點(diǎn):依然存在單點(diǎn)n技術(shù)點(diǎn):客戶端(瀏覽器)緩存、前端頁面緩存、頁面片段緩存、本地數(shù)據(jù)緩存/數(shù)據(jù)庫緩存網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)減少對網(wǎng)站的訪問減少對Web應(yīng)用服務(wù)器的請

6、求減少對數(shù)據(jù)庫的查詢減少文件系統(tǒng)I/O操作DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1111 Step2技術(shù)點(diǎn)客戶端(瀏覽器)緩存技術(shù)點(diǎn)說明根據(jù)HTTP協(xié)議特性,修改Header參數(shù)(Cache-Control、Expires、Pragma、Last-Modified、Etag),讓瀏覽器來緩存頁面(一些優(yōu)秀開發(fā)框架會對此做透明的封裝,例如:Beetle)/Protocols/rfc2616/rfc2616-sec14.html使用HTTP1.1協(xié)議,由于http pipelining技術(shù)特性,能夠使用get請求的決不采取post請求為了節(jié)約帶寬,壓縮頁面(Co

7、ntent-Encoding: gzip);頁面各個元素能“小”即“小”,例如:js包壓縮,js合并,圖片壓縮等會話狀態(tài)信息采取Cookie代替?zhèn)鹘y(tǒng)使用服務(wù)器Sessions對象存儲習(xí)慣做法;使用Ajax實現(xiàn)頁面局部刷新如果可能,可采取瀏覽器插件技術(shù)突破瀏覽器功能限制,將原本在服務(wù)器端運(yùn)算,盡量遷到瀏覽器端。ActiveX/Applet/Flash/.HTML5 最值得期待,她的出現(xiàn)必定改變整個Web世界能夠讓瀏覽器緩存的數(shù)據(jù)一定要緩存;瀏覽器能夠處理的運(yùn)算,決不放在服務(wù)器端來處理。網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1212 Step2技術(shù)點(diǎn)前端頁面緩存采用具備

8、緩存功能的http反向代理服務(wù)器作前端頁面緩存器,VarnishSquidNcacheAiCache(商業(yè))【硬件F5】網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1313 Step2技術(shù)點(diǎn)頁面片段緩存ESI(Edge Side Includes)ESI需要服務(wù)器端支持,常見apache(mod_esi)、WebLogic、JSP標(biāo)簽庫(JESI)等。網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1414 Step2技術(shù)點(diǎn)本地數(shù)據(jù)緩存需要從數(shù)據(jù)庫系統(tǒng)和Web應(yīng)用服務(wù)器兩個層面考慮緩存優(yōu)化網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)技術(shù)點(diǎn)說明關(guān)系數(shù)據(jù)庫系統(tǒng)(如:Oracle

9、MySql)Query Cache策略:一般以sql為key來緩存查詢結(jié)果,盡量不要拼sql,使用PreparedStatement的“?”模式sql;Query Cache大小要根據(jù)數(shù)據(jù)庫系統(tǒng)具體情況合理設(shè)置,過大只會浪費(fèi)內(nèi)存,參考值:128M關(guān)系數(shù)據(jù)庫系統(tǒng)Data Buffer策略:就是數(shù)據(jù)庫數(shù)據(jù)內(nèi)存緩存器,其訪問命中率決定數(shù)據(jù)庫性能,可根據(jù)實際物理內(nèi)存大小適量增大,如:MySql建議buffer值為物理內(nèi)存60-80%應(yīng)用服務(wù)器Cache包括:對象緩存(例如:對象線程安全,做成單例),更新頻率不大數(shù)據(jù)考慮緩存(如:基表數(shù)據(jù)、配置文件信息),考慮使用線程池,對象池,連接池等常見java解決

10、方案:mapOSCacheEHCache等DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1515 Step3增加機(jī)器做HA、數(shù)據(jù)庫讀寫分離網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)n優(yōu)點(diǎn):增加服務(wù)器和HA機(jī)制,系統(tǒng)性能及可用性得到保證n缺點(diǎn):讀寫分離,增加程序難度,架構(gòu)變復(fù)雜,維護(hù)難度增加n技術(shù)點(diǎn):負(fù)載均衡、DAL、數(shù)據(jù)庫讀寫分離DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1616 Step3技術(shù)點(diǎn)負(fù)載均衡網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)類型說明DNS負(fù)載均衡實現(xiàn)簡單、有Cache缺乏靈活性,但對分區(qū)域(如構(gòu)建CDN方案)訪問簡單有效反向代理軟件HAProxy、Nginx、Apache、Lighttpd等硬件產(chǎn)品F5、Net

11、Scaler等LVS(Linux Virtual Server)/SMART Client自己寫代碼某些情況下簡單有效DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1717 Step3技術(shù)點(diǎn)數(shù)據(jù)庫讀寫分離及DAL網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)讀寫分離邏輯分批負(fù)載均衡失效轉(zhuǎn)移(failover)數(shù)據(jù)庫分區(qū)透明支持兩大實現(xiàn)模式:獨(dú)立Proxy服務(wù)器;單獨(dú)API庫文件各個數(shù)據(jù)庫廠商都有自己復(fù)制方案常見通用方案:ETL、GoldenGateTJSDHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1818 Step4CDN、分布式緩存、分庫網(wǎng)站架構(gòu)演變及其技

12、術(shù)脈絡(luò)n優(yōu)點(diǎn):異地緩存有效解決不同地方用戶訪問過慢的問題;分庫策略帶來網(wǎng)站性能整體提升n缺點(diǎn):成本大幅增加,架構(gòu)進(jìn)一步復(fù)雜化,也維護(hù)難度進(jìn)一步增大,架構(gòu)開始臃腫了n技術(shù)點(diǎn):CDN、分布式緩存、Shard分庫DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 1919 Step4技術(shù)點(diǎn)CDN網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)nCDN(Content Delivery Network)內(nèi)容分發(fā)網(wǎng)絡(luò)n將網(wǎng)站的內(nèi)容分發(fā)到最接近用戶的網(wǎng)絡(luò)“邊緣”,使用戶可以就近獲取,從而解決互聯(lián)網(wǎng)網(wǎng)絡(luò)擁擠的狀況,提高用戶訪問的響應(yīng)速度。n適合靜態(tài)內(nèi)容很多(如:靜態(tài)頁面、圖片、視頻等)及頁面內(nèi)容實時性要求不高的網(wǎng)站,如:新聞類門戶網(wǎng)站nCD

13、N構(gòu)建可以做的很簡單,也可以很復(fù)雜,主要根據(jù)自己網(wǎng)站實際情況而定DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2020 Step4技術(shù)點(diǎn)分布式緩存網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)n本地緩存性能優(yōu)秀,但容量有限,無伸縮性n采用分布式緩存方案突破容量限制,具備良好伸縮性;但分布式涉及遠(yuǎn)程網(wǎng)絡(luò)通信消耗其性能本地緩存來得優(yōu)秀,并可涉及節(jié)點(diǎn)狀態(tài)維護(hù)及數(shù)據(jù)復(fù)制問題,其穩(wěn)定性和可靠性是個挑戰(zhàn)。n目前流行分布式緩存方案:memcached、membase、redis等,基本上當(dāng)前的NoSQL方案都可以用來做分布式緩存方案DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2121 Step4技術(shù)點(diǎn)分庫網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)n讀寫

14、分離(簡單有效,前面已介紹)n垂直分區(qū)良好的松耦合的模塊化設(shè)計是垂直分庫的前提DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2222 Step4技術(shù)點(diǎn)分庫網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)n水平分區(qū)(Shard)分片Key識別(劃分檢索依據(jù))是關(guān)鍵是否還有其它招?用NoSql數(shù)據(jù)庫部分替換關(guān)系數(shù)據(jù)庫DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2323 Step5多個數(shù)據(jù)中心,向分布式存儲和計算的架構(gòu)體系邁進(jìn)網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)n優(yōu)點(diǎn):多數(shù)據(jù)中心,帶來更高質(zhì)量區(qū)域服務(wù)體驗;分布式存儲及計算架構(gòu)有效解決pb級數(shù)據(jù)量存儲、檢索及計算性能問題n缺點(diǎn):架構(gòu)復(fù)雜、數(shù)據(jù)同步、一致性及系統(tǒng)維護(hù)、技能要求等成本十分高n技術(shù)

15、點(diǎn):分布式文件系統(tǒng)、Map/Reduce、Key-Value存儲DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2424 Step5技術(shù)點(diǎn)向分布式存儲計算解決方案DFS、Map/Reduce、Key-Value DB網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)nDFS分布式文件系統(tǒng),如:LustreHDFSGFSTFSFreeNas等nMap/Reduce算法(計算框架),基本上現(xiàn)有NoSQL數(shù)據(jù)庫中都支持此算法。nKey-Value DB,也作為NoSQL解決方案,如:BigTableTairHbase HyperTable等n提供完整解決方案: Google(GFS|Map/Reduce|BigTable) Apa

16、che Hadoop(HDFS|Map/Reduce|HBase) DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2525 大型網(wǎng)站架構(gòu)的目標(biāo)與挑戰(zhàn)網(wǎng)站架構(gòu)演變及其技術(shù)脈絡(luò)架構(gòu)設(shè)計理論與原則討論及總結(jié)DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2626 架構(gòu)設(shè)計理論與原則網(wǎng)站架構(gòu)設(shè)計的精神食糧網(wǎng)站架構(gòu)設(shè)計的精神食糧DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2727 架構(gòu)設(shè)計理論與原則關(guān)于數(shù)據(jù)一致性ACID vs BASE nACID( Atomicity 、 Consistency 、 Isolation 、 Durability )是關(guān)系型數(shù)據(jù)庫的最基本原則,遵循ACID原則強(qiáng)調(diào)一致性,對成本要求

17、很高,對性能影響很大。n問題:ACID原則適用于互聯(lián)網(wǎng)應(yīng)用嗎?可用性似乎比一致性重要些nBASE( Basically Available 、 Soft state 、 Eventually consistent )策略BASE策略與ACID不同,其基本思想就是通過犧牲強(qiáng)一致性,以獲得更好的可用性或可靠性基本可用數(shù)據(jù)能夠保證80%一致性就夠了,剩下20%就不要過于糾結(jié)了??蓞⒖及硕绍洜顟B(tài)在不過分追求數(shù)據(jù)一致性(強(qiáng)一致性)前提下可考慮軟狀態(tài)策略,例如把數(shù)據(jù)緩存(State)在客戶端一段時間,過后若沒有新請求的話,就清除此緩存(Soft)最終一致性在某一段短時間內(nèi)允許數(shù)據(jù)不一致,但經(jīng)過一段較長

18、時間,等所有節(jié)點(diǎn)上數(shù)據(jù)的拷貝都整合在一起的時候,數(shù)據(jù)會最終達(dá)到完全一致DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2828 架構(gòu)設(shè)計理論與原則關(guān)于分布式系統(tǒng)CAP理論 一致性分布式系統(tǒng)中,數(shù)據(jù)一般會存儲在不同節(jié)點(diǎn),一致性就是要保證對數(shù)據(jù)操作的原子性可用性確??蛻粼L問數(shù)據(jù)時可得到響應(yīng)。不強(qiáng)調(diào)各個節(jié)點(diǎn)上數(shù)據(jù)要保持一致性。分區(qū)容忍性數(shù)據(jù)分區(qū)存儲后,即使部分分區(qū)組件不可用,其施加的操作也能夠完成CAP理論指出:一個分布式系統(tǒng)不可能同時滿足一致性、可用性和分區(qū)容忍性這三項需求,最多只能同時滿足其中兩個。DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 2929 架構(gòu)設(shè)計理論與原則無共享架構(gòu)(Share Nothing Architecture) DHY DHY 大型網(wǎng)站架構(gòu)大型網(wǎng)站架構(gòu) 3030 架構(gòu)設(shè)計理論與原則ED-SOA架構(gòu) nED-SOA,事件驅(qū)動,面向服務(wù)架構(gòu)nSOA是系統(tǒng)組件化、模塊化構(gòu)建性理論;ED是系統(tǒng)組件之間同步通信,采取事件機(jī)制異

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論