大型網(wǎng)站技術架構-核心原理與案例分析by方陽ppt課件_第1頁
大型網(wǎng)站技術架構-核心原理與案例分析by方陽ppt課件_第2頁
大型網(wǎng)站技術架構-核心原理與案例分析by方陽ppt課件_第3頁
大型網(wǎng)站技術架構-核心原理與案例分析by方陽ppt課件_第4頁
大型網(wǎng)站技術架構-核心原理與案例分析by方陽ppt課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、大型網(wǎng)站技術架構 中心原理與案例分析INFORMATION SHARE方陽方陽 2019.02 2019.02金融中心研發(fā)信息技術中心金融中心研發(fā)信息技術中心BREAD PPT DESIGN目錄 網(wǎng)站的演化1 1 大型網(wǎng)站的架構方式2 2 中心要素分析3 3CONTENTSBREAD PPT DESIGN什么樣的網(wǎng)站才算是大型網(wǎng)站?什么樣的網(wǎng)站才算是大型網(wǎng)站? 高并發(fā),大流量 高可用 海量的數(shù)據(jù) 用戶分布廣泛,網(wǎng)絡情況復雜 平安環(huán)境惡劣 需求快速變卦,發(fā)布頻繁 漸進式的開展 網(wǎng)站的演化1 1BREAD PPT DESIGN大型網(wǎng)站都是由小型網(wǎng)站開展而來,架構也是如此大型網(wǎng)站都是由小型網(wǎng)站開展而

2、來,架構也是如此 初始階段的網(wǎng)站,一臺效力器包含運用、數(shù)據(jù)庫等 運用與數(shù)據(jù)分別 運用緩存改善性能 運用效力器集群改善網(wǎng)站的并發(fā)處置才干 數(shù)據(jù)庫讀寫分別 運用反向代理和CDN加速網(wǎng)站相應 運用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng) 運用NoSQL和搜索引擎 業(yè)務拆分 分布式效力 網(wǎng)站的演化1 1BREAD PPT DESIGN網(wǎng)站架構的演化 網(wǎng)站的演化1 1BREAD PPT DESIGN大型網(wǎng)站的價值觀 大型網(wǎng)站架構技術的價值觀是隨網(wǎng)站所需靈敏應對 驅(qū)動大型網(wǎng)站技術開展的主要力量是網(wǎng)站的業(yè)務開展 網(wǎng)站技術是為了業(yè)務而存在的,脫離業(yè)務開展的實踐,能夠會將技術開展引入小道 技術是用來處理業(yè)務問題的,而業(yè)

3、務問題,也可以經(jīng)過業(yè)務的手段處理BREAD PPT DESIGN網(wǎng)站架構 架構是什么? 最高層次的規(guī)劃,難以改動的決議。這些規(guī)劃和決議奠定了事務未來開展的方向和最終的藍圖 軟件架構是什么? 有管軟件整體結果與組件的籠統(tǒng)描畫,用于知道大型軟件系統(tǒng)各個方面的設計BREAD PPT DESIGN大型網(wǎng)站的架構方式架構模式分層分割分布式集群緩存異步冗余自動化安全BREAD PPT DESIGN 分層 將系統(tǒng)橫向維度上切分成幾個部分,每個部分擔任比較單一的職責,經(jīng)過上層對下層的依賴和調(diào)用組成一個完好的系統(tǒng) 制止跨層次的調(diào)用和逆向調(diào)用 大型網(wǎng)站的架構方式2 2BREAD PPT DESIGN 分割 假設說

4、分層是將軟件在橫向方面進展切分,那么分隔就是在縱向方面對軟件進展切分 大型網(wǎng)站分隔的粒度能夠會很小。比如在運用層,將不同業(yè)務進展分隔,例如將購物、論壇、搜索、廣告分隔成不同的運用,有對立的團隊擔任,部署在不同的效力器上 大型網(wǎng)站的架構方式2 2BREAD PPT DESIGN 分布式 分布式是指將不同的業(yè)務分布在不同的地方 分布式運用和效力,把運用和效力模塊分布式部署 分布式靜態(tài)資源:把JS,CSS,JPG圖片等資源獨立分布式部署,并采用獨立的域名 分布式數(shù)據(jù)和存儲:大型網(wǎng)站的海量數(shù)據(jù),單臺計算機無法提供空間時,需求分布式部署 分布式計算:運用、效力、數(shù)據(jù)處置都是計算,這些計算量非常龐大,目前

5、很多網(wǎng)站采用hadoop及其MapRedcuce分布式計算框架 大型網(wǎng)站的架構方式2 2BREAD PPT DESIGN 集群 集群是指將多臺效力器集中在一同,實現(xiàn)同一業(yè)務 對于用戶訪問集中的模塊需求將獨立部署的效力器集群化,即多臺效力器部署一樣的運用構成一個集群,經(jīng)過負載平衡設備共同對外提供效力 效力器集群可以為一樣的效力提供更多的并發(fā)支持,因此當有更多的用戶訪問時,只需求向集群中參與新的機器即可;另外可以實現(xiàn)當其中的某臺效力器發(fā)生缺點時,可以經(jīng)過負載平衡的失效轉(zhuǎn)移機制將懇求轉(zhuǎn)移至集群中其他的效力器上,因此可以提高系統(tǒng)的可用性 大型網(wǎng)站的架構方式2 2BREAD PPT DESIGN 緩存

6、緩存目的就是減輕效力器的計算,使數(shù)據(jù)直接前往給用戶。在如今的軟件設計中,緩存曾經(jīng)無處不在。詳細實現(xiàn)有CDN、反向代理、本地緩存、分布式緩存等 運用緩存有兩個條件:訪問數(shù)據(jù)熱點不平衡,即某些頻繁訪問的數(shù)據(jù)需求放在緩存中;數(shù)據(jù)在某個時間段內(nèi)有效,不過很快過期,否那么會由于數(shù)據(jù)過期而臟讀,影響數(shù)據(jù)的正確性 緩存除了可以加快數(shù)據(jù)的訪問速度,還可以減輕后端運用和數(shù)據(jù)存儲的負載壓力 大型網(wǎng)站的架構方式2 2BREAD PPT DESIGN 異步 運用異步,業(yè)務之間的音訊傳送不是同步伐用,而是將一個業(yè)務操作分成多個階段,每個階段之間經(jīng)過共享數(shù)據(jù)的方法異步執(zhí)行進展協(xié)作 異步伐用可以提高系統(tǒng)的可用性,加快網(wǎng)站的

7、呼應速度,消除并發(fā)訪問頂峰。但是能夠會對用戶體驗及業(yè)務流程呵斥影響 大型網(wǎng)站的架構方式2 2BREAD PPT DESIGN 冗余 網(wǎng)站需求724小時延續(xù)運轉(zhuǎn),那么就得有相應的冗余機制,以防某臺機器宕掉時無法訪問,而冗余那么可以經(jīng)過部署至少兩臺效力器構成一個集群實現(xiàn)效力高可用。數(shù)據(jù)庫除了定期備份還需求實現(xiàn)冷熱備份。甚至可以在全球范圍內(nèi)部署災備數(shù)據(jù)中心 大型網(wǎng)站的架構方式2 2BREAD PPT DESIGN 自動化 詳細有自動化發(fā)布過程,自動化代碼管理、自動化測試、自動化平安檢測、自動化部署、自動化監(jiān)控、自動化報警、自動化失效轉(zhuǎn)移、自動化失效恢復等 大型網(wǎng)站的架構方式2 2BREAD PPT

8、DESIGN 平安 身份驗證、加密、防火墻等 大型網(wǎng)站的架構方式2 2BREAD PPT DESIGN 中心要素3 3二三四可用性可用性伸縮性伸縮性擴展性擴展性五平安性平安性高性能高性能一BREAD PPT DESIGN 用戶眼中的網(wǎng)站性能 高性能3 3BREAD PPT DESIGN 開發(fā)眼中的網(wǎng)站性能 開發(fā)人員關注的是運用程序本身和相關子系統(tǒng)的性能,包括呼應延遲、系統(tǒng)吞吐量、并發(fā)處置才干、系統(tǒng)穩(wěn)定性等。 主要優(yōu)化手段有:運用緩存加速數(shù)據(jù)讀取,運用集群提高吞吐才干,運用異步音訊加快懇求相應,運用代碼優(yōu)化改善性能 高性能3 3BREAD PPT DESIGN 運維眼中的網(wǎng)站性能 運維人員關注的

9、根底設備性能和資源利用率,比如效力器硬件,數(shù)據(jù)中心網(wǎng)絡,網(wǎng)絡運營商 主要優(yōu)化手段有:建立優(yōu)化骨干網(wǎng),運用高性價比的效力器等 高性能3 3BREAD PPT DESIGN 判別一個網(wǎng)站性能好不好有哪些目的 呼應時間,從發(fā)出懇求到收到數(shù)據(jù)所需求的時間 并發(fā)數(shù),系統(tǒng)能同時處置懇求的數(shù)目 吞吐量,單位時間內(nèi),系統(tǒng)能處置的懇求數(shù)量 性能計數(shù)器,一些數(shù)據(jù)目的,包括對象與線程數(shù),內(nèi)存運用,CPU運用等 高性能3 3BREAD PPT DESIGN 高性能3 3 性能測試方法 性能測試 負載測試 壓力測試 穩(wěn)定性測試BREAD PPT DESIGN 高性能3 3 WEB前端性能優(yōu)化1 運用效力器性能優(yōu)化2 存

10、儲性能優(yōu)化3BREAD PPT DESIGN 高性能3 3 Web前端優(yōu)化 閱讀器端優(yōu)化 減少 懇求,合并CSS,JS,圖片等 運用閱讀器緩存,靜態(tài)資源可以緩存在閱讀器中 啟用緊縮,對文件緊縮,減少傳輸?shù)臄?shù)據(jù)量,閱讀器端解壓,這對效力器和閱讀器端都有壓力 CSS放在頁面最上,js放在頁面最下面 減少Cookie傳輸BREAD PPT DESIGN 高性能3 3 Web前端優(yōu)化 CDN加速 CDN本質(zhì)就是緩存,而且將數(shù)據(jù)緩存在離用戶最近的地方。CDN就部署在網(wǎng)絡營運商的機房中 反向代理 傳統(tǒng)代理效力器位于閱讀器一側(cè),而反向代理效力器位于網(wǎng)站機房一側(cè)。反向代理效力器經(jīng)過配置緩存功能,加速網(wǎng)站呼應

11、另外,反向代理具有維護網(wǎng)站平安的作用,一切懇求都須經(jīng)過反代效力器。反代還可以實現(xiàn)負載平衡BREAD PPT DESIGN 高性能3 3 反向代理BREAD PPT DESIGN 高性能3 3 運用效力器性能優(yōu)化 分布式緩存 分布式緩存架構有兩種,一種以Jboss 為代表需求更新同步的分布式緩存,一種一Memcached為代表的不相互通訊的分布式緩存 異步操作 運用集群 存儲性能優(yōu)化硬件 高性能的代碼 多線程,需求留意線程平安問題 資源復用 數(shù)據(jù)構造 渣滓回收BREAD PPT DESIGN 高可用性3 3 高可用的運用1 高可用的效力2 高可用的數(shù)據(jù)3 軟件質(zhì)量保證4 網(wǎng)站運轉(zhuǎn)監(jiān)控5BREAD

12、 PPT DESIGN 高可用3 3 高可用的網(wǎng)站 可用性度量 網(wǎng)站年度不可用時間=1-網(wǎng)站不可用時間/年度時間 100% 可用性考核BREAD PPT DESIGN 高可用3 3運用層、效力層、數(shù)據(jù)層的劃分粒度會很小很詳細,構造復雜、效力器規(guī)模龐大。通常情況下,不同的業(yè)務產(chǎn)品會部署在不同的效力器集群上,互不干擾BREAD PPT DESIGN 高可用3 3 高可用的運用 經(jīng)過負載平衡進展無形狀的失效轉(zhuǎn)移 Session管理 早期網(wǎng)站運用session復制,在集群中同步 Session綁定在某臺效力器上,但是一旦宕機,session就不存在 利用cookie記錄session,保管在客戶端上,

13、但是受限于cookie的大小和用戶能否開啟cookie Session效力器,部署獨立的session效力器集群,每次讀寫都訪問session效力器BREAD PPT DESIGN 高可用3 3 高可用的效力 分級管理 中心運用和效力優(yōu)先的運用更好的硬件,其他次之 超時設置 效力調(diào)用時間設置超時時間 異步伐用 經(jīng)過音訊隊列方式完成 效力降級 網(wǎng)站訪問頂峰期,可對非重要效力降級:回絕效力和封鎖效力 冪等性設計BREAD PPT DESIGN 高可用3 3 高可用的數(shù)據(jù) CAP原理 數(shù)據(jù)耐久性 Partition Tolerance 數(shù)據(jù)可訪問性 Availibility 數(shù)據(jù)一致性 Consis

14、tency 數(shù)據(jù)強一致,數(shù)據(jù)更新結果和操作呼應總是一致的 數(shù)據(jù)用戶一致,數(shù)據(jù)在存儲中能夠是不一致的,但是用戶訪問時,經(jīng)過就錯和校驗,可以確定一個不斷的數(shù)據(jù)給用戶 數(shù)據(jù)最終一致,物理存儲的數(shù)據(jù)能夠是不一致的,用戶訪問時也能夠是不一致的,但是經(jīng)過一段時間后,數(shù)據(jù)最終會到達一致。BREAD PPT DESIGN 高可用3 3BREAD PPT DESIGN 高可用3 3 高可用的數(shù)據(jù) 數(shù)據(jù)備份 失效轉(zhuǎn)移BREAD PPT DESIGN 高可用3 3 運轉(zhuǎn)監(jiān)控 監(jiān)控數(shù)據(jù)采集 用戶行為日志搜集 效力器性能監(jiān)控 運轉(zhuǎn)數(shù)據(jù)報告 監(jiān)控管理 系統(tǒng)報警 失效轉(zhuǎn)移 自動優(yōu)雅降級BREAD PPT DESIGN不同功

15、能物理分別不同功能物理分別 縱向分別 橫向分別 高伸縮性3 3BREAD PPT DESIGN單一功能經(jīng)過集群實現(xiàn)伸縮單一功能經(jīng)過集群實現(xiàn)伸縮 高伸縮性3 3BREAD PPT DESIGN 高伸縮性3 3 HTTP重定向負載平衡 DNS域名解析負載平衡 反向代理負載平衡 IP負載平衡 數(shù)據(jù)鏈路層負載平衡 負載平衡算法簡介集群的伸縮性設計:BREAD PPT DESIGN 重定向負載平衡BREAD PPT DESIGNDNS域名解析負載平衡BREAD PPT DESIGN反向代理負載平衡BREAD PPT DESIGNIP負載平衡BREAD PPT DESIGN數(shù)據(jù)鏈路層負載平衡BREAD P

16、PT DESIGN 高伸縮性3 3數(shù)據(jù)存儲效力器集群的伸縮性設計 關系數(shù)據(jù)庫集群的伸縮性設計 NoSQL數(shù)據(jù)庫的伸縮性設計BREAD PPT DESIGN 高可擴展性3 3 分布式音訊隊列降低系統(tǒng)耦合性1 分布式效力2 可擴展的數(shù)據(jù)構造3 開放平臺4BREAD PPT DESIGN 高擴展性3 3分布式音訊隊列 事件驅(qū)動架構 經(jīng)過在低耦合的模塊之間傳輸事件音訊,以堅持模塊的松散耦合,并借助事件音訊的通訊完成模塊間協(xié)作,典型的架構就是消費者消費者方式。在大型網(wǎng)站架構中,詳細實現(xiàn)手段很多,最常用的就是分布式音訊隊列BREAD PPT DESIGN 高擴展性3 3BREAD PPT DESIGN 高

17、擴展性3 3目前開源的和商業(yè)的分布式音訊隊列產(chǎn)品有很多,比較著名的有Apache ActiveMQ等,如下是分布式音訊隊列的架構原理BREAD PPT DESIGN 高擴展性3 3巨無霸系統(tǒng)面臨的費事 編譯部署困難 代碼分支管理困難 數(shù)據(jù)庫銜接耗盡 新增業(yè)務困難BREAD PPT DESIGN 高擴展性3 3利用分布式效力打造可復用的業(yè)務平臺利用分布式效力打造可復用的業(yè)務平臺 負載平衡 失效轉(zhuǎn)移 高效的遠程通訊 整合異構系統(tǒng) 對運用最少侵入 版本管理 實時監(jiān)控BREAD PPT DESIGN 高擴展性3 3目前國內(nèi)有較多勝利實施案例的開源分布式效力框架是阿里巴巴的Dubbo,以下圖是Dubbo的架構原理BREAD PPT DESIGN 效力框架客戶端模塊經(jīng)過效力注冊中心加載效力提供者列表效力提供者啟動后自動向效力注冊中心注冊本人可提供的效力接口列表,查找需求的效力接口,并根據(jù)配置的負載平衡戰(zhàn)略將效力調(diào)用懇求發(fā)送到某臺效力提供者效力器。假設效力調(diào)用失敗,客戶端模塊會自動從效力提供者列表選擇一個可提供同樣效力的另一臺效力器重新懇求效力,實現(xiàn)效力的自動失效轉(zhuǎn)移,保證高可用效力。 高擴展性3 3BREAD PPT DESIGN利用開放平臺建立網(wǎng)站生態(tài)圈利用開放平臺建立網(wǎng)站生態(tài)圈 大型網(wǎng)站為了更好的效力本人的用戶,開放更多的增值效力,會把網(wǎng)站內(nèi)部的效力封裝成一些

溫馨提示

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

評論

0/150

提交評論