大型網(wǎng)站的架構(gòu)演進(jìn)
大型網(wǎng)站的技術(shù)問題主要來自于用戶多、同時(shí)訪問量大、數(shù)據(jù)量大。處理數(shù)以P計(jì)的數(shù)據(jù)和數(shù)以百萬計(jì)的用戶,問題就會(huì)變得非常困難。大型網(wǎng)站架構(gòu)的主要目的就是解決這些問題。在面對(duì)一個(gè)大型網(wǎng)站時(shí),首先要討論的是大型網(wǎng)站的特點(diǎn):高并發(fā)性、大流量、高可用性、海量數(shù)據(jù)。我們今天就來了解一下大型網(wǎng)站架構(gòu)演化發(fā)展歷程。
1.初始階段:大型網(wǎng)站都是從小型網(wǎng)站架構(gòu)逐步演化而來。通常一臺(tái)服務(wù)器就綽綽有余。
2.采取應(yīng)用數(shù)據(jù)分離:隨著網(wǎng)站業(yè)務(wù)的發(fā)展,服務(wù)器逐漸不能滿足需求,這時(shí)就需要應(yīng)用和數(shù)據(jù)分離。應(yīng)用與數(shù)據(jù)分離后,整個(gè)網(wǎng)站使用三個(gè)服務(wù)器:應(yīng)用服務(wù)器、文件服務(wù)器和數(shù)據(jù)庫服務(wù)器。
3.使用緩存改善網(wǎng)站性能:80%的業(yè)務(wù)訪問集中在20%的數(shù)據(jù)上,將這一小部分?jǐn)?shù)據(jù)存入內(nèi)存就可以減少數(shù)據(jù)庫訪問的壓力。網(wǎng)站使用的緩存一般分為兩種:應(yīng)用服務(wù)器上的本地緩存和分布式緩存服務(wù)器上的遠(yuǎn)程緩存。
4.使用應(yīng)用服務(wù)器集群:使用集群是解決高并發(fā)、數(shù)據(jù)量大等問題的常用手段。由于單個(gè)應(yīng)用服務(wù)器處理能力有限,網(wǎng)站訪問高峰期會(huì)造成“擁堵”現(xiàn)象。因此,有必要使用負(fù)載均衡處理器??梢詫⒃L問請(qǐng)求從瀏覽器分發(fā)到應(yīng)用服務(wù)器集群中的任何服務(wù)器。
5.數(shù)據(jù)庫讀寫分離:目前主流數(shù)據(jù)庫大多提供主從設(shè)備功能。通過在一個(gè)數(shù)據(jù)庫中建立主從關(guān)系,一個(gè)數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)更新可以同步到另一個(gè)服務(wù)器。利用這一特性,實(shí)現(xiàn)了數(shù)據(jù)庫加載與寫入分離,減輕了數(shù)據(jù)庫的負(fù)載壓力
6.使用反向代理和CDN加速網(wǎng)站響應(yīng):CDN和逆代理的基本原理是緩存,不同之處在于,當(dāng)用戶請(qǐng)求網(wǎng)站服務(wù)時(shí),CDN可以部署到網(wǎng)絡(luò)提供商的機(jī)房,并從最近的網(wǎng)絡(luò)提供商機(jī)房獲取數(shù)據(jù)。當(dāng)用戶的請(qǐng)求到達(dá)中央計(jì)算機(jī)室時(shí),首先訪問的服務(wù)器是反向代理服務(wù)器。如果反向代理服務(wù)器中緩存用戶請(qǐng)求的資源,它將直接返回給用戶。
7.使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng):只有當(dāng)單個(gè)表的數(shù)據(jù)規(guī)模非常大時(shí),才會(huì)使用分布式數(shù)據(jù)庫拆分網(wǎng)站數(shù)據(jù)庫。通常,更常用的數(shù)據(jù)庫分區(qū)方法是在不同的物理服務(wù)器上部署不同業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)部門。
8.使用NoSQL和搜索引擎:NoSQL和搜索引擎是一種互聯(lián)網(wǎng)技術(shù)手段,對(duì)可伸縮的分布式功能有更好的支持。應(yīng)用服務(wù)器可以通過一個(gè)統(tǒng)一的數(shù)據(jù)訪問模塊訪問所有類型的數(shù)據(jù),減輕管理多個(gè)數(shù)據(jù)源的繁瑣。
9.業(yè)務(wù)拆分:大型網(wǎng)站被分成許多不同的應(yīng)用,每個(gè)應(yīng)用都是獨(dú)立部署和維護(hù)的??梢酝ㄟ^超鏈接建立應(yīng)用之間的關(guān)系,通過消息隊(duì)列進(jìn)行數(shù)據(jù)分發(fā)。當(dāng)然,最常見的方法是訪問同一個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng)以形成一個(gè)相關(guān)的完整系統(tǒng)。
10.分布式服務(wù):每個(gè)應(yīng)用系統(tǒng)需要執(zhí)行的相同的業(yè)務(wù)操作,可以連接到數(shù)據(jù)庫,提供通用的業(yè)務(wù)服務(wù),而應(yīng)用系統(tǒng)只需要管理一個(gè)用戶界面,并通過分布式服務(wù)調(diào)用一個(gè)通用的業(yè)務(wù)服務(wù)來完成特定的任務(wù)。
當(dāng)一個(gè)大型網(wǎng)站演化到此,大多數(shù)技術(shù)問題,如跨數(shù)據(jù)中心的實(shí)時(shí)數(shù)據(jù)同步,以及特定的網(wǎng)站業(yè)務(wù)相關(guān)問題是現(xiàn)有的技術(shù)架構(gòu),都可以通過合并和改進(jìn)現(xiàn)有技術(shù)架構(gòu)來解決。
相關(guān)內(nèi)容推薦
最新文章
更多>>- 什么是SEO優(yōu)化?SEO優(yōu)化怎么做?
- 營(yíng)銷型網(wǎng)站制作
- 網(wǎng)站優(yōu)化:寵物網(wǎng)站如何優(yōu)化?
- 網(wǎng)站建設(shè)及網(wǎng)站建設(shè)費(fèi)用-為您提供專業(yè)的網(wǎng)站建設(shè)服務(wù)
- 網(wǎng)站建設(shè)是什么?怎么做網(wǎng)站建設(shè)
- 網(wǎng)站建設(shè)為什么要分高端網(wǎng)站建設(shè)和普通網(wǎng)站建設(shè)
- 醫(yī)療健康科普問答平臺(tái)系統(tǒng)介紹
- 抖音小程序如何開發(fā)?
- 公司小程序建設(shè)和公司小程序開發(fā)都需要哪些過程?
- 網(wǎng)站策劃在網(wǎng)站建設(shè)中的重要性
0532-88983785 / 0532-68613670
我要定制網(wǎng)站