




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、大型網(wǎng)站技術架構(gòu) 核心原理與案例分析INFORMATION SHARE方陽 2019.02金融核心研發(fā)信息技術中心目錄 網(wǎng)站的演化1 大型網(wǎng)站的架構(gòu)模式2 核心要素分析3CONTENTS什么樣的網(wǎng)站才算是大型網(wǎng)站?高并發(fā),大流量高可用海量的數(shù)據(jù)用戶分布廣泛,網(wǎng)絡情況復雜安全環(huán)境惡劣需求快速變更,發(fā)布頻繁漸進式的發(fā)展 網(wǎng)站的演化1大型網(wǎng)站都是由小型網(wǎng)站發(fā)展而來,架構(gòu)也是如此初始階段的網(wǎng)站,一臺服務器包含應用、數(shù)據(jù)庫等應用與數(shù)據(jù)分離使用緩存改善性能使用服務器集群改善網(wǎng)站的并發(fā)處理能力數(shù)據(jù)庫讀寫分離使用反向代理和CDN加速網(wǎng)站相應使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)使用NoSQL和搜索引擎業(yè)務拆分分
2、布式服務 網(wǎng)站的演化1網(wǎng)站架構(gòu)的演化 網(wǎng)站的演化1大型網(wǎng)站的價值觀大型網(wǎng)站架構(gòu)技術的價值觀是隨網(wǎng)站所需靈活應對驅(qū)動大型網(wǎng)站技術發(fā)展的主要力量是網(wǎng)站的業(yè)務發(fā)展網(wǎng)站技術是為了業(yè)務而存在的,脫離業(yè)務發(fā)展的實際,可能會將技術發(fā)展引入小道技術是用來解決業(yè)務問題的,而業(yè)務問題,也可以通過業(yè)務的手段解決網(wǎng)站架構(gòu)架構(gòu)是什么?最高層次的規(guī)劃,難以改變的決定。這些規(guī)劃和決定奠定了事務未來發(fā)展的方向和最終的藍圖軟件架構(gòu)是什么?有管軟件整體結(jié)果與組件的抽象描述,用于知道大型軟件系統(tǒng)各個方面的設計大型網(wǎng)站的架構(gòu)模式架構(gòu)模式分層分割分布式集群緩存異步冗余自動化安全分層將系統(tǒng)橫向維度上切分成幾個部分,每個部分負責比較單一的
3、職責,通過上層對下層的依賴和調(diào)用組成一個完整的系統(tǒng)禁止跨層次的調(diào)用和逆向調(diào)用 大型網(wǎng)站的架構(gòu)模式2分割如果說分層是將軟件在橫向方面進行切分,那么分隔就是在縱向方面對軟件進行切分大型網(wǎng)站分隔的粒度可能會很小。比如在應用層,將不同業(yè)務進行分隔,例如將購物、論壇、搜索、廣告分隔成不同的應用,有對立的團隊負責,部署在不同的服務器上 大型網(wǎng)站的架構(gòu)模式2分布式分布式是指將不同的業(yè)務分布在不同的地方分布式應用和服務,把應用和服務模塊分布式部署分布式靜態(tài)資源:把JS,CSS,JPG圖片等資源獨立分布式部署,并采用獨立的域名分布式數(shù)據(jù)和存儲:大型網(wǎng)站的海量數(shù)據(jù),單臺計算機無法提供空間時,需要分布式部署分布式計
4、算:應用、服務、數(shù)據(jù)處理都是計算,這些計算量非常龐大,目前很多網(wǎng)站采用hadoop及其MapRedcuce分布式計算框架 大型網(wǎng)站的架構(gòu)模式2集群集群是指將多臺服務器集中在一起,實現(xiàn)同一業(yè)務對于用戶訪問集中的模塊需要將獨立部署的服務器集群化,即多臺服務器部署相同的應用構(gòu)成一個集群,通過負載均衡設備共同對外提供服務服務器集群能夠為相同的服務提供更多的并發(fā)支持,因此當有更多的用戶訪問時,只需要向集群中加入新的機器即可;另外可以實現(xiàn)當其中的某臺服務器發(fā)生故障時,可以通過負載均衡的失效轉(zhuǎn)移機制將請求轉(zhuǎn)移至集群中其他的服務器上,因此可以提高系統(tǒng)的可用性 大型網(wǎng)站的架構(gòu)模式2緩存緩存目的就是減輕服務器的計
5、算,使數(shù)據(jù)直接返回給用戶。在現(xiàn)在的軟件設計中,緩存已經(jīng)無處不在。具體實現(xiàn)有CDN、反向代理、本地緩存、分布式緩存等使用緩存有兩個條件:訪問數(shù)據(jù)熱點不均衡,即某些頻繁訪問的數(shù)據(jù)需要放在緩存中;數(shù)據(jù)在某個時間段內(nèi)有效,不過很快過期,否則會因為數(shù)據(jù)過期而臟讀,影響數(shù)據(jù)的正確性緩存除了可以加快數(shù)據(jù)的訪問速度,還可以減輕后端應用和數(shù)據(jù)存儲的負載壓力 大型網(wǎng)站的架構(gòu)模式2異步使用異步,業(yè)務之間的消息傳遞不是同步調(diào)用,而是將一個業(yè)務操作分成多個階段,每個階段之間通過共享數(shù)據(jù)的方法異步執(zhí)行進行協(xié)作異步調(diào)用可以提高系統(tǒng)的可用性,加快網(wǎng)站的響應速度,消除并發(fā)訪問高峰。但是可能會對用戶體驗及業(yè)務流程造成影響 大型網(wǎng)
6、站的架構(gòu)模式2冗余網(wǎng)站需要724小時連續(xù)運行,那么就得有相應的冗余機制,以防某臺機器宕掉時無法訪問,而冗余則可以通過部署至少兩臺服務器構(gòu)成一個集群實現(xiàn)服務高可用。數(shù)據(jù)庫除了定期備份還需要實現(xiàn)冷熱備份。甚至可以在全球范圍內(nèi)部署災備數(shù)據(jù)中心 大型網(wǎng)站的架構(gòu)模式2自動化具體有自動化發(fā)布過程,自動化代碼管理、自動化測試、自動化安全檢測、自動化部署、自動化監(jiān)控、自動化報警、自動化失效轉(zhuǎn)移、自動化失效恢復等 大型網(wǎng)站的架構(gòu)模式2安全身份驗證、加密、防火墻等 大型網(wǎng)站的架構(gòu)模式2 核心要素3二三四可用性伸縮性擴展性五安全性高性能一用戶眼中的網(wǎng)站性能 高性能3開發(fā)眼中的網(wǎng)站性能開發(fā)人員關注的是應用程序本身和相
7、關子系統(tǒng)的性能,包括響應延遲、系統(tǒng)吞吐量、并發(fā)處理能力、系統(tǒng)穩(wěn)定性等。主要優(yōu)化手段有:使用緩存加速數(shù)據(jù)讀取,使用集群提高吞吐能力,使用異步消息加快請求相應,使用代碼優(yōu)化改善性能 高性能3運維眼中的網(wǎng)站性能運維人員關注的基礎設施性能和資源利用率,比如服務器硬件,數(shù)據(jù)中心網(wǎng)絡,網(wǎng)絡運營商主要優(yōu)化手段有:建設優(yōu)化骨干網(wǎng),使用高性價比的服務器等 高性能3判斷一個網(wǎng)站性能好不好有哪些指標響應時間,從發(fā)出請求到收到數(shù)據(jù)所需要的時間并發(fā)數(shù),系統(tǒng)能同時處理請求的數(shù)目吞吐量,單位時間內(nèi),系統(tǒng)能處理的請求數(shù)量性能計數(shù)器,一些數(shù)據(jù)指標,包括對象與線程數(shù),內(nèi)存使用,CPU使用等 高性能3 高性能3性能測試方法性能測試
8、負載測試壓力測試穩(wěn)定性測試 高性能3 WEB前端性能優(yōu)化1 應用服務器性能優(yōu)化2 存儲性能優(yōu)化3 高性能3Web前端優(yōu)化瀏覽器端優(yōu)化減少http請求,合并CSS,JS,圖片等使用瀏覽器緩存,靜態(tài)資源可以緩存在瀏覽器中啟用壓縮,對文件壓縮,減少傳輸?shù)臄?shù)據(jù)量,瀏覽器端解壓,這對服務器和瀏覽器端都有壓力CSS放在頁面最上,js放在頁面最下面減少Cookie傳輸 高性能3Web前端優(yōu)化CDN加速CDN本質(zhì)就是緩存,而且將數(shù)據(jù)緩存在離用戶最近的地方。CDN就部署在網(wǎng)絡營運商的機房中反向代理傳統(tǒng)代理服務器位于瀏覽器一側(cè),而反向代理服務器位于網(wǎng)站機房一側(cè)。反向代理服務器通過配置緩存功能,加速網(wǎng)站響應另外,反
9、向代理具有保護網(wǎng)站安全的作用,所有請求都須經(jīng)過反代服務器。反代還可以實現(xiàn)負載均衡 高性能3反向代理 高性能3應用服務器性能優(yōu)化分布式緩存分布式緩存架構(gòu)有兩種,一種以Jboss 為代表需要更新同步的分布式緩存,一種一Memcached為代表的不互相通信的分布式緩存異步操作使用集群存儲性能優(yōu)化(硬件)高性能的代碼多線程,需要注意線程安全問題資源復用數(shù)據(jù)結(jié)構(gòu)垃圾回收 高可用性3 高可用的應用1 高可用的服務2 高可用的數(shù)據(jù)3 軟件質(zhì)量保證4 網(wǎng)站運行監(jiān)控5 高可用3高可用的網(wǎng)站可用性度量網(wǎng)站年度不可用時間=(1-網(wǎng)站不可用時間/年度時間) 100%可用性考核 高可用3應用層、服務層、數(shù)據(jù)層的劃分粒度
10、會很小很詳細,結(jié)構(gòu)復雜、服務器規(guī)模龐大。通常情況下,不同的業(yè)務產(chǎn)品會部署在不同的服務器集群上,互不干擾 高可用3高可用的應用通過負載均衡進行無狀態(tài)的失效轉(zhuǎn)移Session管理早期網(wǎng)站使用session復制,在集群中同步Session綁定在某臺服務器上,但是一旦宕機,session就不存在利用cookie記錄session,保存在客戶端上,但是受限于cookie的大小和用戶是否開啟cookieSession服務器,部署獨立的session服務器集群,每次讀寫都訪問session服務器 高可用3高可用的服務分級管理核心應用和服務優(yōu)先的使用更好的硬件,其他次之超時設置服務調(diào)用時間設置超時時間異步調(diào)用
11、通過消息隊列方式完成服務降級網(wǎng)站訪問高峰期,可對非重要服務降級:拒絕服務和關閉服務冪等性設計 高可用3高可用的數(shù)據(jù)CAP原理數(shù)據(jù)持久性 Partition Tolerance數(shù)據(jù)可訪問性 Availibility數(shù)據(jù)一致性 Consistency數(shù)據(jù)強一致,數(shù)據(jù)更新結(jié)果和操作響應總是一致的數(shù)據(jù)用戶一致,數(shù)據(jù)在存儲中可能是不一致的,但是用戶訪問時,通過就錯和校驗,可以確定一個一直的數(shù)據(jù)給用戶數(shù)據(jù)最終一致,物理存儲的數(shù)據(jù)可能是不一致的,用戶訪問時也可能是不一致的,但是經(jīng)過一段時間后,數(shù)據(jù)最終會達到一致。 高可用3 高可用3高可用的數(shù)據(jù)數(shù)據(jù)備份失效轉(zhuǎn)移 高可用3運行監(jiān)控監(jiān)控數(shù)據(jù)采集用戶行為日志收集服
12、務器性能監(jiān)控運行數(shù)據(jù)報告監(jiān)控管理系統(tǒng)報警失效轉(zhuǎn)移自動優(yōu)雅降級不同功能物理分離縱向分離 橫向分離 高伸縮性3單一功能通過集群實現(xiàn)伸縮 高伸縮性3 高伸縮性3HTTP重定向負載均衡DNS域名解析負載均衡反向代理負載均衡IP負載均衡數(shù)據(jù)鏈路層負載均衡負載均衡算法簡介集群的伸縮性設計:http重定向負載均衡DNS域名解析負載均衡反向代理負載均衡IP負載均衡數(shù)據(jù)鏈路層負載均衡 高伸縮性3數(shù)據(jù)存儲服務器集群的伸縮性設計關系數(shù)據(jù)庫集群的伸縮性設計NoSQL數(shù)據(jù)庫的伸縮性設計 高可擴展性3 分布式消息隊列降低系統(tǒng)耦合性1 分布式服務2 可擴展的數(shù)據(jù)結(jié)構(gòu)3 開放平臺4 高擴展性3分布式消息隊列事件驅(qū)動架構(gòu)通過在
13、低耦合的模塊之間傳輸事件消息,以保持模塊的松散耦合,并借助事件消息的通信完成模塊間合作,典型的架構(gòu)就是生產(chǎn)者消費者模式。在大型網(wǎng)站架構(gòu)中,具體實現(xiàn)手段很多,最常用的就是分布式消息隊列 高擴展性3 高擴展性3目前開源的和商業(yè)的分布式消息隊列產(chǎn)品有很多,比較著名的有Apache ActiveMQ等,如下是分布式消息隊列的架構(gòu)原理 高擴展性3巨無霸系統(tǒng)面臨的麻煩編譯部署困難代碼分支管理困難數(shù)據(jù)庫連接耗盡新增業(yè)務困難 高擴展性3利用分布式服務打造可復用的業(yè)務平臺負載均衡失效轉(zhuǎn)移高效的遠程通信整合異構(gòu)系統(tǒng)對應用最少侵入版本管理實時監(jiān)控 高擴展性3目前國內(nèi)有較多成功實施案例的開源分布式服務框架是阿里巴巴的Dubbo,下圖是Dubbo的架構(gòu)原理服務框架客戶端模塊通過服務注冊中心加載服務提供者列表(服務提供者啟動后主動向服務注冊中心注冊自己可提供的服務接口列表),查找需要的服務接口,并根據(jù)配置的負載均衡策略將服務調(diào)用請求發(fā)送到某臺服務提供者服務器。如果服務調(diào)用失敗,客戶端模塊會自動從服務提供者列表選擇一個可提供同樣服務的另一臺服務器重新請求服務,實現(xiàn)服務的自動失效轉(zhuǎn)移,保證高可用服務。 高擴展性3利用開放平臺建設網(wǎng)站生態(tài)圈大型網(wǎng)站為了更好的服務自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 辦公應用專家考試題目及答案
- 中式面點師基礎知識課件
- 數(shù)字營銷自動化平臺中的數(shù)據(jù)可視化與決策支持-洞察及研究
- 中層管理者時間管理課件
- vb考試題庫及答案解析
- c語言考試題及答案東師
- 2025年 gcp考試題庫及答案
- 中班健康教學課件下載
- 2025-2030中國清咽功能食品行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展趨勢與投資前景研究報告
- 2025-2030中國汽車檢測行業(yè)市場發(fā)展現(xiàn)狀及競爭格局與投資前景研究報告
- 地鐵安檢培訓課件
- 摸魚活動策劃方案
- 化療所致血小板減少癥CIT
- 2025年北京市中考物理試卷真題(含答案)
- 2025年定向士官心理測試題及答案
- 2025年安徽高考地理試卷真題(含答案)
- 建設工程糾紛律師課件
- 全國衛(wèi)生健康系統(tǒng)職業(yè)技能競賽(傳染病防治監(jiān)督)參考試題庫(含答案)
- 樓梯 欄桿 欄板(一)22J403-1
- 《特殊患者護理規(guī)范》
- 汽車維修安全生產(chǎn)管理制度大全
評論
0/150
提交評論