




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 大型網(wǎng)站技術(shù)架構(gòu)設(shè)計(jì)目錄 TOC o 1-3 h z u HYPERLINK l _Toc490074369 一、大型網(wǎng)站架構(gòu)演化 PAGEREF _Toc490074369 h 5 HYPERLINK l _Toc490074370 1. 初始階段的網(wǎng)站架構(gòu) PAGEREF _Toc490074370 h 5 HYPERLINK l _Toc490074371 2. 應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離 PAGEREF _Toc490074371 h 5 HYPERLINK l _Toc490074372 3. 使用緩存改善網(wǎng)站性能 PAGEREF _Toc490074372 h 6 HYPERLINK
2、 l _Toc490074373 4. 使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力 PAGEREF _Toc490074373 h 7 HYPERLINK l _Toc490074374 5. 數(shù)據(jù)庫(kù)讀寫(xiě)分離 PAGEREF _Toc490074374 h 8 HYPERLINK l _Toc490074375 6. 使用反向代理和CDN加上網(wǎng)站相應(yīng) PAGEREF _Toc490074375 h 9 HYPERLINK l _Toc490074376 7. 使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng) PAGEREF _Toc490074376 h 10 HYPERLINK l _Toc4900743
3、77 8. 使用NoSQL和搜索引擎 PAGEREF _Toc490074377 h 11 HYPERLINK l _Toc490074378 9. 業(yè)務(wù)拆分 PAGEREF _Toc490074378 h 12 HYPERLINK l _Toc490074379 10. 分布式服務(wù) PAGEREF _Toc490074379 h 13 HYPERLINK l _Toc490074380 二、大型網(wǎng)站架構(gòu)模式 PAGEREF _Toc490074380 h 15 HYPERLINK l _Toc490074381 1. 分層 PAGEREF _Toc490074381 h 15 HYPERLI
4、NK l _Toc490074382 2. 分隔 PAGEREF _Toc490074382 h 16 HYPERLINK l _Toc490074383 3. 分布式 PAGEREF _Toc490074383 h 17 HYPERLINK l _Toc490074384 4. 集群 PAGEREF _Toc490074384 h 18 HYPERLINK l _Toc490074385 5. 緩存 PAGEREF _Toc490074385 h 18 HYPERLINK l _Toc490074386 6. 異步 PAGEREF _Toc490074386 h 19 HYPERLINK l
5、 _Toc490074387 7. 冗余 PAGEREF _Toc490074387 h 19 HYPERLINK l _Toc490074388 8. 自動(dòng)化 PAGEREF _Toc490074388 h 20 HYPERLINK l _Toc490074389 9. 安全 PAGEREF _Toc490074389 h 20 HYPERLINK l _Toc490074390 三、大型網(wǎng)站技術(shù)架構(gòu)核心要素 PAGEREF _Toc490074390 h 21 HYPERLINK l _Toc490074391 1. 性能 PAGEREF _Toc490074391 h 21 HYPERL
6、INK l _Toc490074392 2. 可用性 PAGEREF _Toc490074392 h 22 HYPERLINK l _Toc490074393 3. 伸縮性 PAGEREF _Toc490074393 h 23 HYPERLINK l _Toc490074394 4. 擴(kuò)展性 PAGEREF _Toc490074394 h 23 HYPERLINK l _Toc490074395 5. 安全性 PAGEREF _Toc490074395 h 24 HYPERLINK l _Toc490074396 四、大型網(wǎng)站的高性能架構(gòu) PAGEREF _Toc490074396 h 25
7、HYPERLINK l _Toc490074397 1. 性能測(cè)試指標(biāo) PAGEREF _Toc490074397 h 25 HYPERLINK l _Toc490074398 1.1 響應(yīng)時(shí)間 PAGEREF _Toc490074398 h 25 HYPERLINK l _Toc490074399 1.2 并發(fā)數(shù) PAGEREF _Toc490074399 h 26 HYPERLINK l _Toc490074400 1.3 吞吐量 PAGEREF _Toc490074400 h 26 HYPERLINK l _Toc490074401 1.4 性能計(jì)數(shù)器 PAGEREF _Toc49007
8、4401 h 27 HYPERLINK l _Toc490074402 2. 性能優(yōu)化策略 PAGEREF _Toc490074402 h 27 HYPERLINK l _Toc490074403 2.1 Web前端優(yōu)化 PAGEREF _Toc490074403 h 27 HYPERLINK l _Toc490074404 2.2 應(yīng)用服務(wù)器性能優(yōu)化 PAGEREF _Toc490074404 h 29 HYPERLINK l _Toc490074405 2.3 存儲(chǔ)性能優(yōu)化 PAGEREF _Toc490074405 h 33大型網(wǎng)站架構(gòu)演化 架構(gòu)文摘 微信號(hào) ArchDigest功能介紹
9、 每天一篇架構(gòu)領(lǐng)域重磅好文,涉及一線互聯(lián)網(wǎng)公司的互聯(lián)網(wǎng)應(yīng)用架構(gòu)、大數(shù)據(jù)、機(jī)器學(xué)習(xí)等各個(gè)熱門(mén)領(lǐng)域。說(shuō)到大型網(wǎng)站,就得先說(shuō)大型網(wǎng)站的特點(diǎn):高并發(fā)、大流量、高可用、海量數(shù)據(jù)等。下面就說(shuō)說(shuō)大型網(wǎng)站的架構(gòu)演化過(guò)程吧。1. 初始階段的網(wǎng)站架構(gòu) 初始階段都比較簡(jiǎn)單,通常一臺(tái)服務(wù)器就可以搞定一個(gè)網(wǎng)站了,看圖:2. 應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離 隨著網(wǎng)站業(yè)務(wù)的發(fā)展,一臺(tái)服務(wù)器逐漸不能滿(mǎn)足需求;這時(shí)候就需要將應(yīng)用和數(shù)據(jù)分離,如圖:3. 使用緩存改善網(wǎng)站性能 毫無(wú)疑問(wèn),現(xiàn)在的網(wǎng)站基本上都會(huì)使用緩存,即:80%的業(yè)務(wù)訪問(wèn)都會(huì)集中在20%的數(shù)據(jù)上。4. 使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力 因?yàn)閱我粦?yīng)用服務(wù)器能夠處理的請(qǐng)
10、求連接有限,在網(wǎng)站訪問(wèn)高峰時(shí)期,應(yīng)用服務(wù)器會(huì)成為整個(gè)網(wǎng)站的瓶頸。因此使用負(fù)載均衡處理器勢(shì)在必然。通過(guò)負(fù)載均衡調(diào)度服務(wù)器,可將來(lái)自瀏覽器的訪問(wèn)請(qǐng)求分發(fā)到應(yīng)用的集群中的任何一臺(tái)服務(wù)器上。5. 數(shù)據(jù)庫(kù)讀寫(xiě)分離 當(dāng)用戶(hù)達(dá)到一定規(guī)模后,數(shù)據(jù)庫(kù)因?yàn)樨?fù)載壓力過(guò)高而成為網(wǎng)站的瓶頸。而目前主流的數(shù)據(jù)庫(kù)都提供主從熱備功能,通過(guò)配置兩臺(tái)數(shù)據(jù)庫(kù)主從關(guān)系,可以將一臺(tái)數(shù)據(jù)庫(kù)的數(shù)據(jù)更新同步到另一臺(tái)服務(wù)器上。網(wǎng)站利用數(shù)據(jù)庫(kù)這一功能實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離,從而改善數(shù)據(jù)庫(kù)負(fù)載壓力。6. 使用反向代理和CDN加上網(wǎng)站相應(yīng) 提高網(wǎng)站的訪問(wèn)速度,主要手段有使用CDN和反向代理。 CDN和反向代理的基本原理都是緩存,區(qū)別在于CDN部署在網(wǎng)絡(luò)
11、提供商的機(jī)房,而反向代理是部署在網(wǎng)站的中心機(jī)房,當(dāng)用戶(hù)請(qǐng)求到達(dá)中心機(jī)房后,首先訪問(wèn)的反向代理,如果反向代理緩存著用戶(hù)請(qǐng)求的資源,則直接返回給用戶(hù)。7. 使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng) 任何強(qiáng)大的單一服務(wù)器都滿(mǎn)足不了大型網(wǎng)站持續(xù)增長(zhǎng)的業(yè)務(wù)需求。 分布式數(shù)據(jù)庫(kù)時(shí)網(wǎng)站數(shù)據(jù)庫(kù)拆分的最后手段,只用在單表數(shù)據(jù)規(guī)模非常大的時(shí)候才使用。不到不得已時(shí),網(wǎng)站更常用的數(shù)據(jù)庫(kù)拆分手段是業(yè)務(wù)拆分,將不同業(yè)務(wù)的數(shù)據(jù)部署在不同的物理服務(wù)器上。8. 使用NoSQL和搜索引擎 搜素引擎也基本已經(jīng)形成現(xiàn)在大型網(wǎng)站必須提供的功能了,網(wǎng)站需要采用一些非關(guān)系數(shù)據(jù)庫(kù)技術(shù)如NoSQL和非數(shù)據(jù)庫(kù)查詢(xún)技術(shù)如搜索引擎。9. 業(yè)務(wù)拆分 大型
12、網(wǎng)站為了應(yīng)對(duì)日益復(fù)雜的業(yè)務(wù)場(chǎng)景,通過(guò)使用分而治之的手段將真?zhèn)€網(wǎng)站業(yè)務(wù)拆分成不同的產(chǎn)品線。 具體到技術(shù)上,也會(huì)根據(jù)產(chǎn)品線話(huà)費(fèi),將一個(gè)網(wǎng)站拆分成許多不同的應(yīng)用,每個(gè)應(yīng)用獨(dú)立部署維護(hù)。應(yīng)用之間可以通過(guò)超鏈接建立管理,也可以通過(guò)消息隊(duì)列進(jìn)行數(shù)據(jù)分發(fā),當(dāng)然最多的還是通過(guò)訪問(wèn)同一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)來(lái)構(gòu)成一個(gè)關(guān)聯(lián)的完整系統(tǒng)。10. 分布式服務(wù) 由于每一個(gè)應(yīng)用系統(tǒng)都需要執(zhí)行許多相同的業(yè)務(wù)操作,比如用戶(hù)管理,session管理,那么可以將這些公用的業(yè)務(wù)提取出來(lái),獨(dú)立部署。大型網(wǎng)站架構(gòu)模式架構(gòu)文摘 微信號(hào) ArchDigest功能介紹 每天一篇架構(gòu)領(lǐng)域重磅好文,涉及一線互聯(lián)網(wǎng)公司的互聯(lián)網(wǎng)應(yīng)用架構(gòu)、大數(shù)據(jù)、機(jī)器學(xué)習(xí)等各
13、個(gè)熱門(mén)領(lǐng)域。每一個(gè)模式描述了一個(gè)在我們周?chē)粩嘀貜?fù)發(fā)生的問(wèn)題及該問(wèn)題解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重復(fù)工作。所謂網(wǎng)站架構(gòu)模式即為了解決大型網(wǎng)站面臨的高并發(fā)訪問(wèn)、海量數(shù)據(jù)、高可靠運(yùn)行等一系列問(wèn)題與挑戰(zhàn)。為此,在實(shí)踐中提出了許多解決方案,以實(shí)現(xiàn)網(wǎng)站高性能、高可靠性、易伸縮、可擴(kuò)展、安全等各種技術(shù)架構(gòu)目標(biāo)。1. 分層 分詞是企業(yè)應(yīng)用系統(tǒng)中最常見(jiàn)的一種架構(gòu)牧師,將系統(tǒng)在橫向維度上切分成幾個(gè)部分,每個(gè)部分負(fù)責(zé)一部分相對(duì)簡(jiǎn)單并比較單一的職責(zé),然后通過(guò)上層對(duì)下層的依賴(lài)和調(diào)度組成一個(gè)完整的系統(tǒng)。 在網(wǎng)站的分層架構(gòu)中,常見(jiàn)的為3層,即應(yīng)用層、服務(wù)層、數(shù)據(jù)層。應(yīng)用層具體負(fù)責(zé)業(yè)務(wù)和視圖的
14、展示;服務(wù)層為應(yīng)用層提供服務(wù)支持;數(shù)據(jù)庫(kù)提供數(shù)據(jù)存儲(chǔ)訪問(wèn)服務(wù),如數(shù)據(jù)庫(kù)、緩存、文件、搜索引擎等。 分層架構(gòu)是邏輯上的,在物理部署上,三層架構(gòu)可以部署在同一個(gè)物理機(jī)器上,但是隨著網(wǎng)站業(yè)務(wù)的發(fā)展,必然需要對(duì)已經(jīng)分層的模塊分離部署,即三層結(jié)構(gòu)分別部署在不同的服務(wù)器上,是網(wǎng)站擁有更多的計(jì)算資源以應(yīng)對(duì)越來(lái)越多的用戶(hù)訪問(wèn)。 所以雖然分層架構(gòu)模式最初的目的是規(guī)劃軟件清晰的邏輯結(jié)構(gòu)以便于開(kāi)發(fā)維護(hù),但在網(wǎng)站的發(fā)展過(guò)程中,分層結(jié)構(gòu)對(duì)網(wǎng)站支持高并發(fā)向分布式方向的發(fā)展至關(guān)重要。2. 分隔 如果說(shuō)分層是將軟件在橫向方面進(jìn)行切分,那么分隔就是在縱向方面對(duì)軟件進(jìn)行切分。 網(wǎng)站越大,功能越復(fù)雜,服務(wù)和數(shù)據(jù)處理的種類(lèi)也越多,將
15、這些不同的功能和服務(wù)分隔開(kāi)來(lái),包裝成高內(nèi)聚低耦合的模塊單元,不僅有助于軟件的開(kāi)發(fā)維護(hù)也便于不同模塊的分布式部署,提高網(wǎng)站的并發(fā)處理能力和功能擴(kuò)展能力。 大型網(wǎng)站分隔的粒度可能會(huì)很小。比如在應(yīng)用層,將不同業(yè)務(wù)進(jìn)行分隔,例如將購(gòu)物、論壇、搜索、廣告分隔成不同的應(yīng)用,有對(duì)立的團(tuán)隊(duì)負(fù)責(zé),部署在不同的服務(wù)器上。3. 分布式 對(duì)于大型網(wǎng)站,分層和分隔的一個(gè)主要目的是為了切分后的模塊便于分布式部署,即將不同模塊部署在不同的服務(wù)器上,通過(guò)遠(yuǎn)程調(diào)用協(xié)同工作。分布式意味著可以使用更多的計(jì)算機(jī)完同樣的工作,計(jì)算機(jī)越多,CPU、內(nèi)存、存儲(chǔ)資源就越多,能過(guò)處理的并發(fā)訪問(wèn)和數(shù)據(jù)量就越大,進(jìn)而能夠?yàn)楦嗟挠脩?hù)提供服務(wù)。 在
16、網(wǎng)站應(yīng)用中,常用的分布式方案有一下幾種. 分布式應(yīng)用和服務(wù):將分層和分隔后的應(yīng)用和服務(wù)模塊分布式部署,可以改善網(wǎng)站性能和并發(fā)性、加快開(kāi)發(fā)和發(fā)布速度、減少數(shù)據(jù)庫(kù)連接資源消耗。 分布式靜態(tài)資源:網(wǎng)站的靜態(tài)資源如js、CSS、Logo圖片等資源對(duì)立分布式部署,并采用獨(dú)立的域名,即人們常說(shuō)的動(dòng)靜分離。靜態(tài)資源分布式部署可以減輕應(yīng)用服務(wù)器的負(fù)載壓力;通過(guò)使用獨(dú)立域名加快瀏覽器并發(fā)加載的速度。 分布式數(shù)據(jù)和存儲(chǔ):大型網(wǎng)站需要處理以P為單位的海量數(shù)據(jù),單臺(tái)計(jì)算機(jī)無(wú)法提供如此大的存儲(chǔ)空間,這些數(shù)據(jù)庫(kù)需要分布式存儲(chǔ)。 分布式計(jì)算:目前網(wǎng)站普遍使用Hadoop和MapReduce分布式計(jì)算框架進(jìn)行此類(lèi)批處理計(jì)算,
17、其特點(diǎn)是移動(dòng)計(jì)算而不是移動(dòng)數(shù)據(jù),將計(jì)算程序分發(fā)到數(shù)據(jù)所在的位置以加速計(jì)算和分布式計(jì)算。4. 集群 對(duì)于用戶(hù)訪問(wèn)集中的模塊需要將獨(dú)立部署的服務(wù)器集群化,即多臺(tái)服務(wù)器部署相同的應(yīng)用構(gòu)成一個(gè)集群,通過(guò)負(fù)載均衡設(shè)備共同對(duì)外提供服務(wù)。 服務(wù)器集群能夠?yàn)橄嗤姆?wù)提供更多的并發(fā)支持,因此當(dāng)有更多的用戶(hù)訪問(wèn)時(shí),只需要向集群中加入新的機(jī)器即可;另外可以實(shí)現(xiàn)當(dāng)其中的某臺(tái)服務(wù)器發(fā)生故障時(shí),可以通過(guò)負(fù)載均衡的失效轉(zhuǎn)移機(jī)制將請(qǐng)求轉(zhuǎn)移至集群中其他的服務(wù)器上,因此可以提高系統(tǒng)的可用性。5. 緩存 緩存目的就是減輕服務(wù)器的計(jì)算,使數(shù)據(jù)直接返回給用戶(hù)。在現(xiàn)在的軟件設(shè)計(jì)中,緩存已經(jīng)無(wú)處不在。具體實(shí)現(xiàn)有CDN、反向代理、本地緩存
18、、分布式緩存等。 使用緩存有兩個(gè)條件:訪問(wèn)數(shù)據(jù)熱點(diǎn)不均衡,即某些頻繁訪問(wèn)的數(shù)據(jù)需要放在緩存中;數(shù)據(jù)在某個(gè)時(shí)間段內(nèi)有效,不過(guò)很快過(guò)期,否在會(huì)因?yàn)閿?shù)據(jù)過(guò)期而臟讀,影響數(shù)據(jù)的正確性。6. 異步 使用異步,業(yè)務(wù)之間的消息傳遞不是同步調(diào)用,而是將一個(gè)業(yè)務(wù)操作分成多個(gè)階段,每個(gè)階段之間通過(guò)共享數(shù)據(jù)的方法異步執(zhí)行進(jìn)行協(xié)作。 具體實(shí)現(xiàn)則在單一服務(wù)器內(nèi)部可用通過(guò)多線程共享內(nèi)存對(duì)了的方式處理;在分布式系統(tǒng)中可用通過(guò)分布式消息隊(duì)列來(lái)實(shí)現(xiàn)異步。 異步架構(gòu)的典型就是生產(chǎn)者消費(fèi)者方式,兩者不存在直接調(diào)用。7. 冗余 網(wǎng)站需要724小時(shí)連續(xù)運(yùn)行,那么就得有相應(yīng)的冗余機(jī)制,以防某臺(tái)機(jī)器宕掉時(shí)無(wú)法訪問(wèn),而冗余則可以通過(guò)部署至少
19、兩臺(tái)服務(wù)器構(gòu)成一個(gè)集群實(shí)現(xiàn)服務(wù)高可用。數(shù)據(jù)庫(kù)除了定期備份還需要實(shí)現(xiàn)冷熱備份。甚至可以在全球范圍內(nèi)部署災(zāi)備數(shù)據(jù)中心。8. 自動(dòng)化 具體有自動(dòng)化發(fā)布過(guò)程,自動(dòng)化代碼管理、自動(dòng)化測(cè)試、自動(dòng)化安全檢測(cè)、自動(dòng)化部署、自動(dòng)化監(jiān)控、自動(dòng)化報(bào)警、自動(dòng)化失效轉(zhuǎn)移、自動(dòng)化失效恢復(fù)等。9. 安全 網(wǎng)站在安全架構(gòu)方面有許多模式:通過(guò)密碼和手機(jī)校驗(yàn)碼進(jìn)行身份認(rèn)證;登錄、交易需要對(duì)網(wǎng)絡(luò)通信進(jìn)行加密;為了防止機(jī)器人程序?yàn)E用資源,需要使用驗(yàn)證碼進(jìn)行識(shí)別;對(duì)常見(jiàn)的XSS攻擊、SQL注入需要編碼轉(zhuǎn)換;垃圾信息需要過(guò)濾等。大型網(wǎng)站技術(shù)架構(gòu)核心要素架構(gòu)文摘 微信號(hào) ArchDigest功能介紹 每天一篇架構(gòu)領(lǐng)域重磅好文,涉及一線互聯(lián)
20、網(wǎng)公司的互聯(lián)網(wǎng)應(yīng)用架構(gòu)、大數(shù)據(jù)、機(jī)器學(xué)習(xí)等各個(gè)熱門(mén)領(lǐng)域。所謂架構(gòu),一種通俗的說(shuō)法就是“最高層次的規(guī)劃,難以改變的決定”,這些規(guī)劃和決定奠定了事物未來(lái)發(fā)展的方向和最終的藍(lán)圖。而軟件架構(gòu)即“有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述,用于指導(dǎo)大型軟件系統(tǒng)各方面的設(shè)計(jì)”。一般來(lái)說(shuō)軟件架構(gòu)需要關(guān)注性能、可用性、伸縮性、擴(kuò)展性和安全性這5個(gè)架構(gòu)要素。1. 性能 性能是網(wǎng)站架構(gòu)設(shè)計(jì)的一個(gè)重要方面,任何軟件架構(gòu)設(shè)計(jì)方案都必須考慮可能帶來(lái)的性能問(wèn)題。也正因?yàn)樾阅軉?wèn)題幾乎無(wú)處不在,所以?xún)?yōu)化網(wǎng)站性能的手段也非常多: 瀏覽器端:可以通過(guò)瀏覽器緩存、頁(yè)面壓縮傳輸、合理布局頁(yè)面、減少Cookie傳輸?shù)仁侄?,甚至可以使用CDN加速
21、功能。 應(yīng)用服務(wù)器端:可以使用服務(wù)器本地緩存和分布式緩存,也可以通過(guò)異步操作方式來(lái)加快響應(yīng),在高并發(fā)請(qǐng)求的情況下,可以將多臺(tái)應(yīng)用服務(wù)器組成一個(gè)集群共同對(duì)外服務(wù),提高整體處理能力,改善性能。 數(shù)據(jù)庫(kù)服務(wù)器端:可用使用索引、緩存、SQL性能優(yōu)化等手段,還可以使用NoSQL數(shù)據(jù)庫(kù)來(lái)優(yōu)化數(shù)據(jù)模型、存儲(chǔ)結(jié)構(gòu)等。 衡量網(wǎng)站性能有一系列指標(biāo),重要的有響應(yīng)時(shí)間、TPS、系統(tǒng)性能計(jì)數(shù)器等,通過(guò)這些指標(biāo)以確定系統(tǒng)設(shè)計(jì)是否達(dá)到目標(biāo)。2. 可用性 可用性即能夠不間斷提供服務(wù)的時(shí)間。幾乎所有網(wǎng)站都承諾724小時(shí)可用,但事實(shí)上任何網(wǎng)站都不可能達(dá)到完全的724,總會(huì)有一些故障時(shí)間,扣除這些故障時(shí)間,就是網(wǎng)站的可用時(shí)間。一些
22、大型網(wǎng)站可以做到4個(gè)9以上的可用性,也就是99.99%。 網(wǎng)站高可用的主要手段就是冗余,應(yīng)用部署在多臺(tái)服務(wù)器上同時(shí)提供服務(wù),數(shù)據(jù)存儲(chǔ)在多臺(tái)服務(wù)器上相互備份,任何一臺(tái)服務(wù)器都不會(huì)影響應(yīng)用的整體可以,通常的實(shí)現(xiàn)手段即把多臺(tái)服務(wù)器通過(guò)負(fù)載均衡設(shè)備組成一個(gè)集群。 衡量一個(gè)系統(tǒng)架構(gòu)設(shè)計(jì)是否滿(mǎn)足高可用的目標(biāo),就是假設(shè)系統(tǒng)中任何一臺(tái)或者多臺(tái)服務(wù)器宕機(jī)時(shí),以及出現(xiàn)各種不可預(yù)期的問(wèn)題時(shí),系統(tǒng)整體是否依然可用。3. 伸縮性 大型網(wǎng)站需要面對(duì)大量用戶(hù)的高并發(fā)訪問(wèn)和存儲(chǔ)海量數(shù)據(jù),網(wǎng)站通過(guò)集群的方式將多臺(tái)服務(wù)器組成一個(gè)整體共同提供服務(wù)。所謂伸縮性是指通過(guò)不斷向集群中加入服務(wù)器的手段來(lái)緩解不斷整體上市用戶(hù)并發(fā)訪問(wèn)壓力和不
23、斷增長(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ù)量是否有限制。4. 擴(kuò)展性 不同于其他架構(gòu)要素主要關(guān)注非功能性需求,網(wǎng)站的擴(kuò)展性架構(gòu)直接關(guān)注網(wǎng)站的功能需求。網(wǎng)站快速發(fā)展,功能不斷擴(kuò)展,如何設(shè)計(jì)網(wǎng)站的架構(gòu)使其能夠快速響應(yīng)需求變化,是網(wǎng)站可擴(kuò)展架構(gòu)的主要目標(biāo)。 衡量網(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ú)影響,不同產(chǎn)品之間是否很少耦合等。 網(wǎng)站可擴(kuò)展架構(gòu)的主要手段是事件驅(qū)動(dòng)架構(gòu)和分布式服務(wù)。 事件驅(qū)動(dòng)通常利用消
24、息隊(duì)列實(shí)現(xiàn),通過(guò)這種方式將消息生產(chǎn)和處理邏輯分隔開(kāi)。 服務(wù)器服務(wù)則是將業(yè)務(wù)和可復(fù)用服務(wù)分離開(kāi)來(lái),通過(guò)分布式服務(wù)框架調(diào)用。新增加產(chǎn)品可用通過(guò)調(diào)用可復(fù)用的服務(wù)來(lái)實(shí)現(xiàn)自身的業(yè)務(wù)邏輯,而對(duì)現(xiàn)有產(chǎn)品沒(méi)有任何影響。5. 安全性 互聯(lián)網(wǎng)是開(kāi)發(fā)的,任何人在任何地方都可以訪問(wèn)網(wǎng)站。網(wǎng)站的安全架構(gòu)就是保護(hù)網(wǎng)站不受惡意訪問(wèn)和攻擊,保護(hù)網(wǎng)站的重要數(shù)據(jù)不被竊取。 衡量網(wǎng)站安全架構(gòu)的標(biāo)準(zhǔn)就是針對(duì)現(xiàn)存和潛在的各種攻擊和竊密手段,是否有可靠的應(yīng)對(duì)策略。大型網(wǎng)站的高性能架構(gòu) 架構(gòu)文摘 微信號(hào) ArchDigest功能介紹 每天一篇架構(gòu)領(lǐng)域重磅好文,涉及一線互聯(lián)網(wǎng)公司的互聯(lián)網(wǎng)應(yīng)用架構(gòu)、大數(shù)據(jù)、機(jī)器學(xué)習(xí)等各個(gè)熱門(mén)領(lǐng)域。網(wǎng)站性能是客
25、觀的指標(biāo),可以具體體現(xiàn)到響應(yīng)時(shí)間、吞吐量、并發(fā)數(shù)、性能計(jì)數(shù)器等技術(shù)指標(biāo)。1. 性能測(cè)試指標(biāo)1.1 響應(yīng)時(shí)間 指應(yīng)用執(zhí)行一個(gè)操作需要的時(shí)間,指從發(fā)出請(qǐng)求到最后收到響應(yīng)數(shù)據(jù)所需要的時(shí)間。如下列出了系統(tǒng)常用的操作響應(yīng)時(shí)間表。操作響應(yīng)時(shí)間打開(kāi)一個(gè)網(wǎng)站幾秒數(shù)據(jù)庫(kù)查詢(xún)一條記錄(有索引)十幾毫秒機(jī)械磁盤(pán)一次尋址定位4毫秒從機(jī)械磁盤(pán)順序讀取1M數(shù)據(jù)2毫秒從SSD磁盤(pán)順序讀取1M數(shù)據(jù)0.3毫秒從遠(yuǎn)程分布式換成Redis讀取一個(gè)數(shù)據(jù)0.5毫秒從內(nèi)存讀取1M數(shù)據(jù)十幾微妙Java程序本地方法調(diào)用幾微妙網(wǎng)絡(luò)傳輸2Kb數(shù)據(jù)1微妙實(shí)踐中計(jì)算響應(yīng)時(shí)間通常是通過(guò)平均時(shí)間計(jì)算的平均值。1.2 并發(fā)數(shù) 指系統(tǒng)能夠同時(shí)處理的請(qǐng)求的數(shù)
26、目,這個(gè)數(shù)字也反映了系統(tǒng)的負(fù)載性能。對(duì)于網(wǎng)站而言,并發(fā)數(shù)指網(wǎng)站用戶(hù)同時(shí)提交請(qǐng)求的用戶(hù)數(shù)目。 網(wǎng)站系統(tǒng)用戶(hù)數(shù)網(wǎng)站在線用戶(hù)數(shù)網(wǎng)站并發(fā)用戶(hù)數(shù)1.3 吞吐量指單位時(shí)間內(nèi)系統(tǒng)處理的請(qǐng)求數(shù)量,體現(xiàn)系統(tǒng)的整體處理能力。對(duì)于網(wǎng)站,可用“請(qǐng)求數(shù)/秒”或“頁(yè)面數(shù)/秒”或“訪問(wèn)人數(shù)/天”或“處理業(yè)務(wù)數(shù)/小時(shí)”等來(lái)衡量。TPS(每秒事物數(shù))是吞吐量的一個(gè)常用量化指標(biāo)。刺猬還有HPS(每秒HTTP請(qǐng)求數(shù))、QPS(每秒查詢(xún)數(shù))。1.4 性能計(jì)數(shù)器指操作系統(tǒng)的一些數(shù)據(jù)指標(biāo)如System load(系統(tǒng)負(fù)載),CPU使用率、內(nèi)存使用率、磁盤(pán)等使用情況。2. 性能優(yōu)化策略根據(jù)網(wǎng)站分層架構(gòu),可分為Web前端性能優(yōu)化、應(yīng)用服務(wù)器性能優(yōu)化、存儲(chǔ)服務(wù)器性能優(yōu)化。2.1 Web前端優(yōu)化2.1.1 瀏覽器訪問(wèn)優(yōu)化減少HTTP請(qǐng)求數(shù),主要可通過(guò)合并
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品運(yùn)輸公司管理制度
- 藥庫(kù)藥房調(diào)撥管理制度
- 藥店店面衛(wèi)生管理制度
- 藥店藥品倉(cāng)庫(kù)管理制度
- 營(yíng)運(yùn)客車(chē)報(bào)廢管理制度
- 設(shè)備備品耗材管理制度
- 設(shè)備改造安全管理制度
- 設(shè)備檢查計(jì)劃管理制度
- 設(shè)備管道安全管理制度
- 設(shè)備設(shè)施拆除管理制度
- 2025 年發(fā)展對(duì)象培訓(xùn)考試題及答案
- 稅務(wù)智稅競(jìng)賽試題及答案
- 電力巡檢機(jī)器人市場(chǎng)調(diào)研報(bào)告2025
- 2025年初中學(xué)業(yè)水平考試地理模擬卷及答案(地理國(guó)情認(rèn)知全面復(fù)習(xí))
- 森林康養(yǎng)基地項(xiàng)目可行性研究報(bào)告
- 竹編非遺教學(xué)課件
- “雙招雙引”工作實(shí)施方案新
- 學(xué)習(xí)型組織建設(shè)實(shí)施方案
- 質(zhì)量三檢管理制度
- 2025深圳輔警考試題庫(kù)
- 孕前優(yōu)生健康教育
評(píng)論
0/150
提交評(píng)論