2023-11-17 分類: 網(wǎng)站建設(shè)
對(duì)大型網(wǎng)站技術(shù)的理解可以基于架構(gòu)技術(shù)原理的組織方法,以架構(gòu)元素為維度,從系統(tǒng)性能、可用??性、可擴(kuò)展性等角度闡述網(wǎng)站架構(gòu)的技術(shù)要點(diǎn)、可擴(kuò)展性和安全性。還有一種更直觀的組織方式,從不同架構(gòu)層級(jí)使用的網(wǎng)站架構(gòu)技術(shù)維度來(lái)描述。
網(wǎng)站系統(tǒng)架構(gòu)的層次結(jié)構(gòu)如下圖所示:
本網(wǎng)站架構(gòu)層次分為8個(gè)層次。數(shù)據(jù)庫(kù)中心機(jī)房架構(gòu)是上述所有架構(gòu)的物理基礎(chǔ);安全架構(gòu)和數(shù)據(jù)庫(kù)采集監(jiān)控架構(gòu)是貫穿各個(gè)層面的重要保障。這兩種架構(gòu)主要解決五個(gè)業(yè)務(wù)相關(guān)層面的安全問(wèn)題和數(shù)據(jù)采集與監(jiān)控問(wèn)題,一直是需要關(guān)注的領(lǐng)域;
對(duì)于目前的大規(guī)模網(wǎng)絡(luò),可以分為五個(gè)方面:前端、應(yīng)用層、服務(wù)層、存儲(chǔ)層、后端。簡(jiǎn)單的說(shuō),前端存儲(chǔ)靜態(tài)網(wǎng)頁(yè),不涉及業(yè)務(wù),是為了讓客戶端能夠及時(shí)響應(yīng),展示一些靜態(tài)內(nèi)容;應(yīng)用層是處理業(yè)務(wù)邏輯的地方,前端開(kāi)發(fā)的代碼主要發(fā)布在這個(gè)地方。實(shí)際用戶的各種業(yè)務(wù)處理也主要在這個(gè)地方進(jìn)行;服務(wù)層介于應(yīng)用層和存儲(chǔ)層之間,主要為兩者提供各種分布式服務(wù),比如分布式緩存,可以減輕存儲(chǔ)層的壓力,盡快響應(yīng)應(yīng)用層的請(qǐng)求提高性能;存儲(chǔ)層存儲(chǔ)各種業(yè)務(wù)數(shù)據(jù)關(guān)系和非關(guān)系數(shù)據(jù)庫(kù)和文件之間數(shù)據(jù)同步的區(qū)域;以上四個(gè)層次可以說(shuō)是實(shí)時(shí)業(yè)務(wù)功能。如果某一層面出現(xiàn)問(wèn)題,將直接影響用戶體驗(yàn)。在這四個(gè)層面的背后,有一個(gè)后端,不直接與用戶溝通,而是從上述業(yè)務(wù)通過(guò)搜索引擎、數(shù)據(jù)倉(cāng)庫(kù)、推薦系統(tǒng)等,創(chuàng)造出更有價(jià)值的信息,并為用戶提供支持。后端業(yè)務(wù)。
1.前端架構(gòu)
(包括:瀏覽器優(yōu)化技術(shù)、CDN、動(dòng)靜態(tài)分離、靜態(tài)資源獨(dú)立部署、圖片服務(wù)、反向代理、DNS等7項(xiàng)技術(shù))
前端是指用戶在請(qǐng)求到達(dá)網(wǎng)站應(yīng)用服務(wù)器之前經(jīng)過(guò)的鏈接。它通常不包含網(wǎng)站業(yè)務(wù)邏輯,也不處理動(dòng)態(tài)內(nèi)容。一般你打開(kāi)一個(gè)網(wǎng)頁(yè)或者界面的時(shí)候,一輸入U(xiǎn)RL就能看到的信息就屬于這部分,然后慢慢加載,就是后續(xù)業(yè)務(wù)層的內(nèi)容,因?yàn)閮?nèi)容是靜態(tài)的,會(huì)沒(méi)變。可以在各個(gè)地方準(zhǔn)備,放在CDN中,達(dá)到瞬間響應(yīng)的效果。為了達(dá)到這個(gè)效果,有以下架構(gòu)技術(shù):
瀏覽器優(yōu)化技術(shù)
不是優(yōu)化瀏覽器,而是通過(guò)優(yōu)化響應(yīng)頁(yè)面來(lái)加速瀏覽器頁(yè)面的加載和顯示。常用的有頁(yè)面緩存、合并HTTp減少請(qǐng)求次數(shù)、使用頁(yè)面壓縮等。
CDN
內(nèi)容分發(fā)網(wǎng)絡(luò)部署在網(wǎng)絡(luò)運(yùn)營(yíng)商的機(jī)房。通過(guò)將靜態(tài)頁(yè)面內(nèi)容分發(fā)到離用戶最近的CDN服務(wù)器,用戶可以通過(guò)最短路徑獲取內(nèi)容。
動(dòng)靜分離,靜態(tài)資源獨(dú)立部署
靜態(tài)資源,如JS、CSS等文件部署在專用服務(wù)器集群上,與Web應(yīng)用動(dòng)態(tài)內(nèi)容服務(wù)分離,使用專用(二級(jí))域名。
圖片服務(wù)
圖片不是指網(wǎng)站logo、按鈕圖標(biāo)等,這些文件屬于上面提到的靜態(tài)資源,需要和JS、CSS一起部署。這里的圖片是指用戶上傳的圖片,如產(chǎn)品圖片、用戶頭像等。圖片服務(wù)也適用于獨(dú)立部署的圖片服務(wù)器集群,使用獨(dú)立(二級(jí))域名。
反向代理
部署在網(wǎng)站機(jī)房,在應(yīng)用服務(wù)器、靜態(tài)資源服務(wù)器、圖片服務(wù)器前提供頁(yè)面緩存服務(wù)。
域名解析
域名服務(wù),將域名解析為Ip地址,使用DNS實(shí)現(xiàn)DNS負(fù)載均衡,配置CDN也需要修改DNS,使域名解析為指向CDN服務(wù)器。
2.應(yīng)用層架構(gòu)
(包括:開(kāi)發(fā)框架、頁(yè)面渲染、負(fù)載均衡、管理、動(dòng)態(tài)頁(yè)面靜態(tài)、業(yè)務(wù)拆分、虛擬服務(wù)器等7項(xiàng)技術(shù))
應(yīng)用層是處理網(wǎng)站主要業(yè)務(wù)邏輯的地方。一般而言,pHp或Java等技術(shù)實(shí)現(xiàn)的網(wǎng)絡(luò)邏輯和前端框架均參考本部分內(nèi)容。這部分是交互業(yè)務(wù)實(shí)現(xiàn)的主要層次。相應(yīng)的架構(gòu)技術(shù)有:
開(kāi)發(fā)框架
網(wǎng)站業(yè)務(wù)是多變的。網(wǎng)站的大部分軟件工程師都在加班加點(diǎn)開(kāi)發(fā)網(wǎng)站業(yè)務(wù)。一個(gè)好的開(kāi)發(fā)框架非常重要。一個(gè)數(shù)的開(kāi)發(fā)框架應(yīng)該能夠?qū)㈥P(guān)注點(diǎn)分開(kāi),讓美工和開(kāi)發(fā)工程師可以做自己的事情,輕松協(xié)作。同時(shí),應(yīng)內(nèi)置一些安全策略,以防止 Web 攻擊。
頁(yè)面渲染
整合單獨(dú)開(kāi)發(fā)維護(hù)的動(dòng)態(tài)內(nèi)容和靜態(tài)頁(yè)面模板,形成一個(gè)完整的頁(yè)面,最終呈現(xiàn)給用戶。
負(fù)載均衡
多個(gè)應(yīng)用服務(wù)器組成集群,通過(guò)負(fù)載均衡技術(shù)將用戶請(qǐng)求分發(fā)到不同的服務(wù)器,以應(yīng)對(duì)大量用戶同時(shí)訪問(wèn)帶來(lái)的高并發(fā)負(fù)載壓力。
管理
為了實(shí)現(xiàn)高可用的應(yīng)用服務(wù)器集群,應(yīng)用服務(wù)器通常被設(shè)計(jì)為無(wú)狀態(tài)的,不存儲(chǔ)用戶請(qǐng)求上下文信息。但是網(wǎng)站服務(wù)通常需要維護(hù)用戶會(huì)話信息,需要特殊的機(jī)制管理才能使集群甚至跨集群的應(yīng)用服務(wù)器可以共享。
靜態(tài)化動(dòng)態(tài)頁(yè)面
對(duì)于特別訪問(wèn)和更新不頻繁的動(dòng)態(tài)頁(yè)面,可以將其設(shè)為靜態(tài),即生成靜態(tài)頁(yè)面,并使用靜態(tài)頁(yè)面優(yōu)化方法加速用戶訪問(wèn),如反向代理、CDN、瀏覽器緩存等。
業(yè)務(wù)拆分
將復(fù)雜龐大的業(yè)務(wù)拆分成多個(gè)較小規(guī)模的產(chǎn)品,獨(dú)立開(kāi)發(fā)、部署和維護(hù),不僅降低了系統(tǒng)耦合度,還方便了數(shù)據(jù)庫(kù)業(yè)務(wù)分庫(kù)。按業(yè)務(wù)拆分關(guān)系數(shù)據(jù)庫(kù)技術(shù)難度相對(duì)較小,效果也比較好。
虛擬化服務(wù)器
將物理服務(wù)器虛擬化為多態(tài)虛擬服務(wù)器。對(duì)于并發(fā)訪問(wèn)量低的服務(wù),更容易用更少的資源構(gòu)建高可用的應(yīng)用服務(wù)器集群。
3.服務(wù)層架構(gòu)
(包括:分布式消息、分布式服務(wù)、分布式緩存、分布式配置等4項(xiàng)技術(shù))
提供基礎(chǔ)服務(wù),調(diào)用應(yīng)用層,完成網(wǎng)站業(yè)務(wù)。服務(wù)層介于應(yīng)用層和存儲(chǔ)層之間。顧名思義,它為應(yīng)用層提供各種服務(wù)。服務(wù)層本身的內(nèi)容來(lái)源可能與存儲(chǔ)層有關(guān)。比如緩存就是在存儲(chǔ)層做一部分?jǐn)?shù)據(jù)。處理和顯示被供應(yīng)層快速調(diào)用。服務(wù)層的架構(gòu)技術(shù)主要是幾個(gè)分布式的服務(wù)功能:
分布式消息
利用消息隊(duì)列機(jī)制實(shí)現(xiàn)消息的異步發(fā)送和業(yè)務(wù)與業(yè)務(wù)、業(yè)務(wù)與服務(wù)的低耦合業(yè)務(wù)關(guān)系。
分布式服務(wù)
提供高性能、低耦合、易于使用、易于管理的分布式服務(wù),并在網(wǎng)站上實(shí)施面向服務(wù)的架構(gòu)(SOA)。
分布式緩存
通過(guò)可擴(kuò)展的服務(wù)器集群提供大規(guī)模的熱數(shù)據(jù)緩存服務(wù)是網(wǎng)站性能優(yōu)化的重要手段。
分布式配置
系統(tǒng)運(yùn)行需要配置很多參數(shù)。如果需要修改這些參數(shù),比如在分布式緩存集群中添加新的緩存服務(wù)器,則需要修改應(yīng)用客戶端的緩存服務(wù)器列表的配置并重啟應(yīng)用服務(wù)器。分布式配置提供系統(tǒng)運(yùn)行過(guò)程中的動(dòng)態(tài)配置推送服務(wù),無(wú)需重啟服務(wù)器即可將配置變化實(shí)時(shí)推送到應(yīng)用系統(tǒng)。
4.存儲(chǔ)層架構(gòu)
(包括:分布式文件、關(guān)系數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)同步等4項(xiàng)技術(shù))
為數(shù)據(jù)和文件提供持久的存儲(chǔ)訪問(wèn)和管理服務(wù)。這一層也是一般意義上的數(shù)據(jù)庫(kù)層,主要用于存儲(chǔ)各種數(shù)據(jù)。當(dāng)然,大型網(wǎng)站中數(shù)據(jù)層的概念不僅包括傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),還包括分布式文件數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)同步技術(shù)等。存儲(chǔ)層的架構(gòu)技術(shù)主要包括:
分布式文件
網(wǎng)站在線業(yè)務(wù)中需要存儲(chǔ)的文件大多是圖片、網(wǎng)頁(yè)、視頻等相對(duì)較小的文件,但這些文件的數(shù)量非常多,而且通常還在不斷增加,并且需要具有更好可擴(kuò)展性的分布式文件。系統(tǒng)。
關(guān)系數(shù)據(jù)庫(kù)
主要業(yè)務(wù)大部分是基于關(guān)系型數(shù)據(jù)庫(kù)開(kāi)發(fā)的,但是關(guān)系型數(shù)據(jù)庫(kù)對(duì)集群擴(kuò)展性的支持較差。通過(guò)在應(yīng)用的數(shù)據(jù)訪問(wèn)層增加數(shù)據(jù)庫(kù)訪問(wèn)的路由功能,根據(jù)業(yè)務(wù)配置將數(shù)據(jù)庫(kù)訪問(wèn)路由到不同的物理數(shù)據(jù)庫(kù),實(shí)現(xiàn)分布式訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)
目前各種數(shù)據(jù)庫(kù)層出不窮,在內(nèi)存管理、數(shù)據(jù)模型、集群分布式管理等方面各有優(yōu)勢(shì),但從社區(qū)活躍度來(lái)看,無(wú)疑是目前最好的。
數(shù)據(jù)同步
在支持全球數(shù)據(jù)共享的分布式數(shù)據(jù)庫(kù)技術(shù)成熟之前,擁有多個(gè)數(shù)據(jù)中心的網(wǎng)站必須在多個(gè)數(shù)據(jù)中心之間同步數(shù)據(jù),以確保每個(gè)數(shù)據(jù)中心都有完整的數(shù)據(jù)。在實(shí)踐中,為了降低數(shù)據(jù)庫(kù)的壓力php大型網(wǎng)站技術(shù)架構(gòu),將數(shù)據(jù)庫(kù)的事務(wù)日志(或?qū)懖僮魅罩荆┩降狡渌麛?shù)據(jù)中心,根據(jù)日志重放數(shù)據(jù)php大型網(wǎng)站技術(shù)架構(gòu),實(shí)現(xiàn)數(shù)據(jù)同步。
5.后臺(tái)架構(gòu)
(包括:搜索引擎、數(shù)據(jù)倉(cāng)庫(kù)、推薦系統(tǒng)等3項(xiàng)技術(shù))
在web應(yīng)用中,除了處理用戶的實(shí)時(shí)訪問(wèn)請(qǐng)求,還有一些后臺(tái)非實(shí)時(shí)的數(shù)據(jù)分析需要處理。后端架構(gòu)主要進(jìn)行一些非實(shí)時(shí)操作,為前端業(yè)務(wù)處理提供支持。主要的架構(gòu)技術(shù)有:
搜索引擎
即使是網(wǎng)站內(nèi)部的搜索引擎,也需要增量和全量數(shù)據(jù)更新、索引構(gòu)建等,這些操作都是通過(guò)后臺(tái)系統(tǒng)定期執(zhí)行的。
數(shù)據(jù)倉(cāng)庫(kù)
根據(jù)線下數(shù)據(jù),提供數(shù)據(jù)分析和數(shù)據(jù)挖掘服務(wù)。
推薦系統(tǒng)
社交網(wǎng)站和購(gòu)物網(wǎng)站通過(guò)挖掘人與人之間、人與產(chǎn)品之間的關(guān)系,發(fā)展?jié)撛诘娜穗H關(guān)系和購(gòu)物興趣,為用戶提供個(gè)性化的推薦服務(wù)。
6.數(shù)據(jù)收集與監(jiān)控
(包括:瀏覽器數(shù)據(jù)采集、服務(wù)器業(yè)務(wù)數(shù)據(jù)采集、服務(wù)器性能數(shù)據(jù)采集、系統(tǒng)監(jiān)控、系統(tǒng)告警等5項(xiàng)技術(shù))
監(jiān)控網(wǎng)站訪問(wèn)和系統(tǒng)運(yùn)行,為網(wǎng)站運(yùn)營(yíng)決策和運(yùn)維管理提供支持。數(shù)據(jù)采集??和監(jiān)控存在于整個(gè)業(yè)務(wù)架構(gòu)的生命周期中。業(yè)務(wù)上線后,業(yè)務(wù)是否正常運(yùn)行,運(yùn)維人員的主要工作就是數(shù)據(jù)的采集和監(jiān)控。當(dāng)業(yè)務(wù)系統(tǒng)出現(xiàn)故障或性能出現(xiàn)問(wèn)題時(shí),也需要更換系統(tǒng)進(jìn)行支持和問(wèn)題定位,進(jìn)而解決問(wèn)題。該級(jí)別的主要架構(gòu)技術(shù)有:
瀏覽器數(shù)據(jù)收集
通過(guò)在網(wǎng)頁(yè)中嵌入JS腳本,收集用戶瀏覽器環(huán)境和操作記錄,分析用戶行為。
服務(wù)器業(yè)務(wù)數(shù)據(jù)收集
服務(wù)器業(yè)務(wù)數(shù)據(jù)包括兩種,一種是收集服務(wù)器端記錄的用戶請(qǐng)求操作日志;另一種是在應(yīng)用運(yùn)行時(shí)收集業(yè)務(wù)數(shù)據(jù),比如要處理的消息數(shù)。
服務(wù)器性能數(shù)據(jù)收集
收集服務(wù)器性能數(shù)據(jù),如系統(tǒng)負(fù)載、內(nèi)存使用情況、網(wǎng)卡流量等
系統(tǒng)監(jiān)控
將上述收集到的數(shù)據(jù)以圖表的形式展示出來(lái),方便運(yùn)維人員監(jiān)控網(wǎng)站的運(yùn)行狀態(tài)。這一步只是一個(gè)系統(tǒng)監(jiān)控。更高級(jí)的做法是根據(jù)采集到的數(shù)據(jù)進(jìn)行自動(dòng)化運(yùn)維,自動(dòng)處理系統(tǒng)異常,吸收自動(dòng)化控制。
系統(tǒng)報(bào)警
如果采集到的數(shù)據(jù)超過(guò)正常情況的預(yù)設(shè)閾值,例如系統(tǒng)負(fù)載過(guò)高,會(huì)通過(guò)郵件、短信、語(yǔ)音電話等方式發(fā)出報(bào)警信號(hào),等待管理員介入工程師。
7.安全架構(gòu)
(包括:網(wǎng)絡(luò)攻擊、數(shù)據(jù)保護(hù)等2項(xiàng)技術(shù))
保護(hù)網(wǎng)站免受攻擊和敏感信息泄露。安全也是企業(yè)正常運(yùn)營(yíng)的一個(gè)非常重要的問(wèn)題。安全有兩個(gè)主要方面。一是來(lái)自外界的攻擊和防護(hù),會(huì)影響網(wǎng)站業(yè)務(wù)的可用性和性能;另一個(gè)是網(wǎng)站內(nèi)部數(shù)據(jù)的安裝和保護(hù),這會(huì)影響到數(shù)據(jù)層的敏感信息總數(shù)。主要的安全架構(gòu)技術(shù)有:
網(wǎng)絡(luò)攻擊
HTTp 請(qǐng)求發(fā)起的最有害的攻擊是 XSS 和 SQL 注入攻擊。但只要措施得當(dāng),這兩種攻擊相對(duì)容易防范。
數(shù)據(jù)保護(hù)
敏感信息的加密傳輸和存儲(chǔ),以保護(hù)網(wǎng)站和用戶資產(chǎn)。
8.數(shù)據(jù)中心機(jī)房架構(gòu)
(包括:機(jī)房架構(gòu)、機(jī)柜架構(gòu)、服務(wù)器架構(gòu)等3項(xiàng)技術(shù))
大型網(wǎng)站所需的服務(wù)器規(guī)模數(shù)以萬(wàn)計(jì),機(jī)房的物理結(jié)構(gòu)也需要注意。對(duì)于大型網(wǎng)絡(luò)系統(tǒng),物理服務(wù)器的數(shù)量勢(shì)必非常龐大。這樣就必須在機(jī)房、機(jī)柜、服務(wù)器等層次上有相應(yīng)的規(guī)劃,才能更好的支持以上各個(gè)層次。
機(jī)房架構(gòu)
對(duì)于一個(gè)10萬(wàn)臺(tái)服務(wù)器的大型網(wǎng)站,每臺(tái)服務(wù)器的耗電量(包括服務(wù)器本身的耗電量和空調(diào)的耗電量)每年大約需要2000元左右,所以每年的機(jī)房電費(fèi)為該網(wǎng)站將耗資2億元人民幣。數(shù)據(jù)中心能耗問(wèn)題越來(lái)越嚴(yán)重。在選擇數(shù)據(jù)中心的地理位置時(shí),趨勢(shì)是選擇散熱良好、供電充足的地方。
機(jī)柜結(jié)構(gòu)
包括機(jī)柜尺寸、網(wǎng)線布局、指示燈規(guī)格、不間斷電源、電壓規(guī)格(是48V DC還是220V AC民用)等一系列問(wèn)題。
服務(wù)器架構(gòu)
由于大型網(wǎng)站的服務(wù)器采購(gòu)規(guī)模較大,大多使用定制服務(wù)器,而不是購(gòu)買(mǎi)完整的服務(wù)器。根據(jù)網(wǎng)站應(yīng)用需求,定制硬盤(pán)、內(nèi)存甚至CpU,去除不必要的外圍接口(顯示輸出接口、鼠標(biāo)、鍵盤(pán)輸入接口),使空間結(jié)構(gòu)有利于散熱。
原文:
網(wǎng)站欄目:大型網(wǎng)站架構(gòu)的技術(shù)要點(diǎn)與應(yīng)用層的組織方式分析
文章位置:http://vcdvsql.cn/news7/295007.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、定制開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、網(wǎng)站策劃、定制網(wǎng)站、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容