日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

网站服务架构

發(fā)布時(shí)間:2024/9/20 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网站服务架构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

服務(wù)器劃分

?????? 對(duì)于訪問量大的網(wǎng)站而言,將網(wǎng)站的各個(gè)部分拆分分別部署到不同服務(wù)器上是很有必要的。例如將圖片和web站點(diǎn)分開。一般而言,在網(wǎng)站的整個(gè)服務(wù)器部署上分為如下幾種類型:

???????文件服務(wù)器:一般存儲(chǔ)系統(tǒng)的相關(guān)圖片和文件,給各個(gè)子系統(tǒng)提供統(tǒng)一的文件調(diào)用

???????代理服務(wù)器:一般使用linux+Nginx作為反向代理

???????web服務(wù)器:.net中最常用的Web服務(wù)器IIS,Mono中一般使用Nginx

???????應(yīng)用服務(wù)器:負(fù)責(zé)系統(tǒng)中各個(gè)業(yè)務(wù)邏輯的提供,比如用戶中心,結(jié)算中心,支付中心等

???????緩存服務(wù)器:提供MemCached緩存服務(wù)

???????數(shù)據(jù)庫服務(wù)器:負(fù)責(zé)網(wǎng)站數(shù)據(jù)的提供,一般為Sqlserver,mysql,oracle等

帶寬的計(jì)算

?????? 假設(shè)網(wǎng)站每天要承受100萬pv的訪問量,計(jì)算帶寬要涉及到兩個(gè)指標(biāo)(峰值流量和頁面平均大小),帶寬單位為bps(bit/s)。

?????? 1、假設(shè)峰值流量為平均流量的5倍;

?????? 2、假設(shè)每次訪問的平均頁面大小為100KB左右。

?????? 1B=8b---------------------1B/s=8b/s(1Bps=8bps)

?????? 1KB=1024B ------------- 1KB/s=1024B/s

?????? 1MB=1024KB------------1Mps=1024KB/s

?????? 100萬pv訪問量一天平均分布,折合每秒大約訪問12次,頁面大小為字節(jié)(Byte),總共訪問頁面大小就是12*100KB=1200KB,1Byte=8bit,則1200KB=9600Kb,9600Kb/1024大約9Mb/s(9Mbps),我們網(wǎng)站在峰值流量時(shí)一定要保持正常訪問,則真實(shí)帶寬應(yīng)該在9M*5=45Mbps左右。

網(wǎng)站架構(gòu)的演變過程之一

公司剛剛起步,業(yè)務(wù)量不大,往往可能在某個(gè)虛擬主機(jī)空間商租用一個(gè)虛擬主機(jī)和一個(gè)數(shù)據(jù)庫就搭建了一個(gè)最基本的網(wǎng)站

?

網(wǎng)站架構(gòu)的演變過程之二增加緩存

隨著業(yè)務(wù)量增加,用戶的訪問越來越多,網(wǎng)站經(jīng)常性的打不開,慢,甚至出現(xiàn)數(shù)據(jù)庫鏈接達(dá)到最大限制數(shù),這個(gè)時(shí)候需要針對(duì)網(wǎng)站做一些優(yōu)化策略:

  • 減少Http請(qǐng)求,壓縮css,js,圖片的大小
  • 將Microsoft Ajax Minifier集成到VS2010對(duì)JS,CSS進(jìn)行編譯時(shí)壓縮
  • 增加頁面緩存和增加數(shù)據(jù)緩存處理
  • cnblogs上的緩存全解析
  • 自購服務(wù)器進(jìn)行IDC托管
  • 自購服務(wù)器能夠提升硬件的檔次以及帶寬可以自由控制,一般都是獨(dú)享帶寬,相比共享帶寬來說能夠支撐更多的訪問量

?

網(wǎng)站架構(gòu)的演變過程之三增加web服務(wù)器

?????? 當(dāng)系統(tǒng)訪問量的再度增加,webserver機(jī)器的壓力在高峰會(huì)上升到比較高,這個(gè)時(shí)候開始考慮增加一臺(tái)WebServer,但是增加一臺(tái)WebServer的時(shí)候意味著要在兩臺(tái)的服務(wù)器上分別建立相同的站點(diǎn),那么就會(huì)出現(xiàn)如下問題:

?????? 如何讓訪問分配到這兩臺(tái)機(jī)器上?Nginx

?????? 如何保持狀態(tài)信息的同步,例如用戶session等?

?????? 正??紤]的方案有寫入數(shù)據(jù)庫、開啟狀態(tài)服務(wù)器、cookie、寫入緩存等。

?????? 如何保持?jǐn)?shù)據(jù)緩存信息的同步?

?????? 緩存服務(wù)器

?????? 如何讓上傳文件這些類似的功能繼續(xù)正常?

?????? 采用文件服務(wù)器統(tǒng)一管理

網(wǎng)站架構(gòu)的演變過程之四分庫,分表,分布式緩存

通過增加web服務(wù)器享受了一段快速訪問的幸福后,發(fā)現(xiàn)系統(tǒng)又開始變慢了,經(jīng)過查找,發(fā)現(xiàn)數(shù)據(jù)庫寫入、更新的這些操作的部分?jǐn)?shù)據(jù)庫連接的?資源競爭非常激烈,導(dǎo)致了系統(tǒng)變慢,這下怎么辦呢?

分庫

分表

Memcache,Redis分布式緩存

水平分區(qū) VS 垂直分區(qū)

?

水平

垂直

存儲(chǔ)依賴

可跨越DB
可跨越物理機(jī)器

可跨越表空間,不同的物理屬性
不能跨DB存儲(chǔ)

存儲(chǔ)方式

分布式

集中式

擴(kuò)展性

Scale?Out(橫向擴(kuò)展,增加便宜設(shè)備)

Scale?Up(升級(jí)設(shè)備)

可用性

無單點(diǎn)

存在單點(diǎn)(DB數(shù)據(jù)本身)

價(jià)格

低廉

適中,甚至昂貴

應(yīng)用場景

web?2.0

?

架構(gòu)演變過程之五Web園或增加更多WebServer

在做完分庫分表這些工作后,數(shù)據(jù)庫上的壓力已經(jīng)降到比較低了,這個(gè)時(shí)候可能到了下一個(gè)瓶頸,查看windows的性能計(jì)數(shù)器發(fā)現(xiàn)有大量的阻塞請(qǐng)求,于是可以做Web園或者添加一些webserver服務(wù)器。在這個(gè)添加webserver服務(wù)器的過程,有可能會(huì)出現(xiàn)如下幾個(gè)問題:

一臺(tái)Nginx服務(wù)器的軟負(fù)載已經(jīng)無法承擔(dān)巨大的web訪問量了,可以用硬件負(fù)載解決F5或應(yīng)用從邏輯上做一定的分類,然后分散到不同的軟負(fù)載集群中

原有的一些狀態(tài)信息同步、文件共享等方案可能會(huì)出現(xiàn)瓶頸,需要進(jìn)行改進(jìn),也許這個(gè)時(shí)候會(huì)根據(jù)情況編寫符合網(wǎng)站業(yè)務(wù)需求的分布式文件系統(tǒng)等;

在做完這些工作后,開始進(jìn)入一個(gè)看似完美的無限伸縮的時(shí)代,當(dāng)網(wǎng)站流量增加時(shí),應(yīng)對(duì)的解決方案就是不斷的添加webserver。

架構(gòu)演變之六讀寫分離和廉價(jià)存儲(chǔ)方案

通過增加web服務(wù)器享受了一段快速訪問的幸福后,發(fā)現(xiàn)系統(tǒng)又開始變慢了,經(jīng)過查找,發(fā)現(xiàn)數(shù)據(jù)庫寫入、更新的這些操作的部分?jǐn)?shù)據(jù)庫連接的?資源競爭非常激烈,導(dǎo)致了系統(tǒng)變慢,這下怎么辦呢,讀寫分離,訂閱和發(fā)布

?

廉價(jià)存儲(chǔ)方案Nosql

NoSQL = Not Only SQL?指的是非關(guān)系型的數(shù)據(jù)庫。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2.0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。

NoSql數(shù)據(jù)庫大量應(yīng)用于微博系統(tǒng)等事務(wù)性不強(qiáng)的系統(tǒng)

BigTable

MongoDB?

http://tech.it168.com/topic/2011/10-1/nosqlapp/index.html

架構(gòu)演變之七進(jìn)入大型分布式應(yīng)用時(shí)代和廉價(jià)服務(wù)器群夢(mèng)想時(shí)代

經(jīng)過上面這個(gè)漫長而痛苦的過程,終于再度迎來了完美的時(shí)代,不斷的增加webserver就可以支撐越來越高的訪問量了,但是原來部署在webserver上的那個(gè)web應(yīng)用已經(jīng)非常龐大?了,當(dāng)多個(gè)團(tuán)隊(duì)都開始對(duì)其進(jìn)行改動(dòng)時(shí),相當(dāng)?shù)牟环奖?#xff0c;復(fù)用性也相當(dāng)糟糕,基本上每個(gè)團(tuán)隊(duì)都做了或多或少重復(fù)的事情,而且部署和維護(hù)也是相當(dāng)?shù)穆闊?#xff0c;因?yàn)辇嫶蟮膽?yīng)用包在N臺(tái)機(jī)器上復(fù)制、啟動(dòng)都需要耗費(fèi)不少的時(shí)間,出問題的時(shí)候也不是很好查,另外一個(gè)更糟糕的狀況是很有可能會(huì)出現(xiàn)某個(gè)應(yīng)用上的bug就導(dǎo)?致了全站都不可用,還有其他的像調(diào)優(yōu)不好操作(因?yàn)闄C(jī)器上部署的應(yīng)用什么都要做,根本就無法進(jìn)行針對(duì)性的調(diào)優(yōu))等因素,根據(jù)這樣的分析,開始痛下決心,將?系統(tǒng)根據(jù)職責(zé)進(jìn)行拆分,于是一個(gè)大型的分布式應(yīng)用就誕生了,通常,這個(gè)步驟需要耗費(fèi)相當(dāng)長的時(shí)間,因?yàn)闀?huì)碰到很多的挑戰(zhàn):
1、拆成分布式后需要提供一個(gè)高性能、穩(wěn)定的通信框架,并且需要支持多種不同的通信和遠(yuǎn)程調(diào)用方式;
2、將一個(gè)龐大的應(yīng)用拆分需要耗費(fèi)很長的時(shí)間,需要進(jìn)行業(yè)務(wù)的整理和系統(tǒng)依賴關(guān)系的控制等;
3、如何運(yùn)維(依賴管理、運(yùn)行狀況管理、錯(cuò)誤追蹤、調(diào)優(yōu)、監(jiān)控和報(bào)警等)好這個(gè)龐大的分布式應(yīng)用。
經(jīng)過這一步,差不多系統(tǒng)的架構(gòu)進(jìn)入相對(duì)穩(wěn)定的階段,同時(shí)也能開始采用大量的廉價(jià)機(jī)器來支撐著巨大的訪問量和數(shù)據(jù)量,結(jié)合這套架構(gòu)以及這么多次演變過程吸取的經(jīng)驗(yàn)來采用其他各種各樣的方法來支撐著越來越高的訪問量。

參考:http://www.cnblogs.com/genson/archive/2009/10/22/1587836.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的网站服务架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。