大型網(wǎng)站及其架構(gòu)演進(jìn)過程_第1頁(yè)
大型網(wǎng)站及其架構(gòu)演進(jìn)過程_第2頁(yè)
大型網(wǎng)站及其架構(gòu)演進(jìn)過程_第3頁(yè)
大型網(wǎng)站及其架構(gòu)演進(jìn)過程_第4頁(yè)
大型網(wǎng)站及其架構(gòu)演進(jìn)過程_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、大型網(wǎng)站及其架構(gòu)演進(jìn)過程什么是大型網(wǎng)站什么是大型網(wǎng)站什么是大型網(wǎng)站什么是大型網(wǎng)站什么是大型網(wǎng)站網(wǎng)站是用來訪問的,訪問量要大大型網(wǎng)站應(yīng)該有海量的數(shù)據(jù)大型網(wǎng)站應(yīng)該有復(fù)雜業(yè)務(wù)處理的能力大型網(wǎng)站的架構(gòu)演進(jìn)利用JAVA技術(shù)和單機(jī)來構(gòu)建網(wǎng)站大型網(wǎng)站的架構(gòu)演進(jìn)利用JAVA技術(shù)和單機(jī)來構(gòu)建網(wǎng)站JavaScriptHTMLCSSspringJAVA語(yǔ)言hibernateservletMybatisstrutsJSP計(jì)算存儲(chǔ)利用JAVA技術(shù)和單機(jī)來構(gòu)建網(wǎng)站一個(gè)單機(jī)的交易網(wǎng)站用戶交易商品用戶注冊(cè)用戶管理信息維護(hù)商品管理商品展示創(chuàng)建交易管理交易單機(jī)負(fù)載告警,數(shù)據(jù)庫(kù)與應(yīng)用分離大型網(wǎng)站的架構(gòu)演進(jìn)單機(jī)負(fù)載告警,數(shù)據(jù)庫(kù)與應(yīng)用

2、分離用戶訪問量增加網(wǎng)站數(shù)據(jù)量增加網(wǎng)站響應(yīng)變慢系統(tǒng)宕機(jī)數(shù)據(jù)庫(kù)與應(yīng)用分離應(yīng)用服務(wù)器負(fù)載告警,應(yīng)用服務(wù)器走向集群大型網(wǎng)站的架構(gòu)演進(jìn)應(yīng)用服務(wù)器負(fù)載告警,應(yīng)用服務(wù)器走向集群用戶訪問量持續(xù)增加應(yīng)用服務(wù)器達(dá)到性能瓶頸應(yīng)用服務(wù)器走向集群?最終用戶訪問哪一臺(tái)服務(wù)器?平衡算法應(yīng)用服務(wù)器負(fù)載告警,應(yīng)用服務(wù)器走向集群最終用戶訪問哪一臺(tái)服務(wù)器引入負(fù)載均衡設(shè)備平衡算法設(shè)計(jì)的好壞直接決定了集群在負(fù)載均衡上的表現(xiàn),設(shè)計(jì)不好的算法,會(huì)導(dǎo)致集群的負(fù)載失衡。一般的平衡算法主要任務(wù)是決定如何選擇下一個(gè)集群節(jié)點(diǎn),然后將新的服務(wù)請(qǐng)求轉(zhuǎn)發(fā)給它。輪轉(zhuǎn)法散列法最少連接法最低缺失法加權(quán)法最快響應(yīng)法新的問題:session應(yīng)用服務(wù)器負(fù)載告警,應(yīng)用

3、服務(wù)器走向集群Session問題問題隨即而來問題隨即而來1. 會(huì)話保存在單機(jī)上2. 如果第一次請(qǐng)求訪問左邊服務(wù)器,如果不做處理,無法保障每次請(qǐng)求都落在同一服務(wù)器什么是什么是sessionhttp協(xié)議本身無狀態(tài),需要基于HTTP協(xié)議支持會(huì)話狀態(tài)(session state)的機(jī)制,實(shí)現(xiàn)WEB服務(wù)器從多次單獨(dú)的HTTP請(qǐng)求中看到“會(huì)話”,也就是知道請(qǐng)求來源于那個(gè)會(huì)話。實(shí)現(xiàn)方式:在會(huì)話開始時(shí),分配一個(gè)唯一會(huì)話標(biāo)識(shí)(sessionId),通過Cookie把這個(gè)標(biāo)識(shí)告訴瀏覽器,以后每次請(qǐng)求時(shí),瀏覽器會(huì)帶上這個(gè)會(huì)話標(biāo)識(shí)告訴Web服務(wù)器請(qǐng)求屬于哪個(gè)會(huì)話,在Web服務(wù)器上,各個(gè)會(huì)話有獨(dú)立的存儲(chǔ),保存不同會(huì)話的

4、信息。如果遇到禁用Cookie的情況,就把這個(gè)會(huì)話標(biāo)識(shí)放到URL參數(shù)中。應(yīng)用服務(wù)器負(fù)載告警,應(yīng)用服務(wù)器走向集群Session問題Session Sticky保證同一會(huì)話的請(qǐng)求都在同一個(gè)Web服務(wù)器上處理依賴負(fù)載均衡器根據(jù)每次請(qǐng)求的會(huì)話標(biāo)識(shí)來進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)缺陷1. 如果一臺(tái)Web服務(wù)器宕機(jī)或重啟,會(huì)話數(shù)據(jù)丟失;2. 負(fù)載均衡器變成了一個(gè)有狀態(tài)的節(jié)點(diǎn),要講會(huì)話保存到具體Web服務(wù)器的映射。和無狀態(tài)節(jié)點(diǎn)相比,內(nèi)存消耗會(huì)更大,容災(zāi)麻煩。應(yīng)用服務(wù)器負(fù)載告警,應(yīng)用服務(wù)器走向集群Session問題Session ReplicationWeb服務(wù)器之間增加會(huì)話數(shù)據(jù)的同步,保證Web服務(wù)器之間Session數(shù)據(jù)一

5、致缺陷1. 同步Session數(shù)據(jù)造成了網(wǎng)絡(luò)帶寬的開銷。2. 每臺(tái)Web服務(wù)器都保存所有的Session數(shù)據(jù),如果整個(gè)集群的Session數(shù)很多的話,每臺(tái)機(jī)器用于保存Session數(shù)據(jù)的內(nèi)容占用會(huì)很嚴(yán)重應(yīng)用服務(wù)器負(fù)載告警,應(yīng)用服務(wù)器走向集群Session問題Session 數(shù)據(jù)集中存儲(chǔ)把Session數(shù)據(jù)集中存儲(chǔ)起來,不同Web服務(wù)器從同樣地方獲取Session缺陷1. 讀寫Session數(shù)據(jù)引入了網(wǎng)絡(luò)操作,故而造成延遲和不穩(wěn)定性;2. 如果集中存儲(chǔ)Session的機(jī)器或者集群有問題,會(huì)影響應(yīng)用應(yīng)用服務(wù)器負(fù)載告警,應(yīng)用服務(wù)器走向集群Session問題Cookie Based將Session數(shù)據(jù)

6、放在Cookie中,然后在Web服務(wù)器上從Cookie中生成對(duì)應(yīng)的Session數(shù)據(jù)缺陷1. Cookie長(zhǎng)度限制;2. 安全性;3. 帶寬消耗;4. 性能影響;數(shù)據(jù)讀壓力變大,讀寫分離吧大型網(wǎng)站的架構(gòu)演進(jìn)數(shù)據(jù)讀壓力變大,讀寫分離吧隨著業(yè)務(wù)的發(fā)展,數(shù)據(jù)量和訪問量持續(xù)增長(zhǎng)對(duì)于大型網(wǎng)站來說,不少業(yè)務(wù)是讀多寫少的問題問題1. 數(shù)據(jù)復(fù)制問題;2. 短期的數(shù)據(jù)不一致問題;3. 應(yīng)用對(duì)于數(shù)據(jù)源的選擇問題采用數(shù)據(jù)庫(kù)作為讀庫(kù)數(shù)據(jù)讀壓力變大,讀寫分離吧搜索引擎可以看成是一個(gè)讀庫(kù)根據(jù)被搜索的數(shù)據(jù)來構(gòu)建搜索索引隨著被搜索數(shù)據(jù)的變化,索引也要進(jìn)行改變引入搜索引擎作為讀庫(kù)數(shù)據(jù)讀壓力變大,讀寫分離吧數(shù)據(jù)緩存頁(yè)面緩存加速數(shù)

7、據(jù)讀取的利器-緩存Static MapMemcachedEhCacheJCacheOsCache彌補(bǔ)關(guān)系型數(shù)據(jù)庫(kù)的不足,引入分布式存儲(chǔ)系統(tǒng)大型網(wǎng)站的架構(gòu)演進(jìn)彌補(bǔ)關(guān)系型數(shù)據(jù)庫(kù)的不足,引入分布式存儲(chǔ)系統(tǒng)分布式存儲(chǔ)系統(tǒng)通過集群提供一個(gè)高容量,高并發(fā)訪問,數(shù)據(jù)冗余容災(zāi)的支持。1. 分布式文件系統(tǒng),解決文件的存儲(chǔ)問題;2. 分布式key-value系統(tǒng),提供高性能的半結(jié)構(gòu)化的支持;3. 分布式數(shù)據(jù)庫(kù),提供支持大數(shù)據(jù)、大并發(fā)的數(shù)據(jù)庫(kù)系統(tǒng)讀寫分離后,數(shù)據(jù)庫(kù)又遇到新的瓶頸大型網(wǎng)站的架構(gòu)演進(jìn)讀寫分離后,數(shù)據(jù)庫(kù)又遇瓶頸專庫(kù)專用,數(shù)據(jù)垂直拆分垂直拆分把數(shù)據(jù)庫(kù)中不同的業(yè)務(wù)數(shù)據(jù)拆分到不同的數(shù)據(jù)庫(kù)中。對(duì)數(shù)據(jù)進(jìn)行垂直拆分后

8、,解決了把所有業(yè)務(wù)數(shù)據(jù)放在一個(gè)數(shù)據(jù)庫(kù)中的壓力問題,并且也可以根據(jù)不同業(yè)務(wù)的特點(diǎn)進(jìn)行更多優(yōu)化。讀寫分離后,數(shù)據(jù)庫(kù)又遇瓶頸垂直拆分后的單機(jī)瓶頸,數(shù)據(jù)水平拆分水平拆分某個(gè)業(yè)務(wù)的數(shù)據(jù)表的數(shù)據(jù)量或者更新量達(dá)到了單個(gè)數(shù)據(jù)庫(kù)的瓶頸,這時(shí)把同一個(gè)表的數(shù)據(jù)拆分到兩個(gè)數(shù)據(jù)庫(kù)中。一旦完成數(shù)據(jù)的水平拆分,將能夠很好地應(yīng)對(duì)數(shù)據(jù)量及寫入量增長(zhǎng)的情況。數(shù)據(jù)庫(kù)問題解決后,應(yīng)用面對(duì)的新挑戰(zhàn)大型網(wǎng)站的架構(gòu)演進(jìn)數(shù)據(jù)庫(kù)問題解決后,應(yīng)用面對(duì)的新挑戰(zhàn)拆分應(yīng)用隨著業(yè)務(wù)的發(fā)展,應(yīng)用的功能會(huì)越來越多,應(yīng)用也會(huì)越來越大。需要考慮如何不然應(yīng)用持續(xù)變大,這就需要把應(yīng)用拆開,從一個(gè)應(yīng)用變?yōu)閮蓚€(gè)甚至多個(gè)應(yīng)用。第一種方式:根據(jù)業(yè)務(wù)的特性將應(yīng)用拆分第二種方式:按功能拆分走服務(wù)化的路大型網(wǎng)站的架構(gòu)演進(jìn)走服務(wù)化的路1.業(yè)務(wù)功能之間的訪問不僅是單機(jī)內(nèi)部的方法調(diào)用,還引入遠(yuǎn)程的服務(wù)調(diào)用2.共享的代碼不再散落在不同應(yīng)用中,這些被放在了各個(gè)服務(wù)中心。3.數(shù)據(jù)庫(kù)的連接也發(fā)生了一些變化,把與數(shù)據(jù)庫(kù)的交互工作放到了服務(wù)中心,讓前端的Web應(yīng)用更加注重與瀏覽器交互的工作,而不必過多關(guān)注業(yè)務(wù)邏輯。4.通過服務(wù)化,無論前端Web應(yīng)用還是服

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論