2024中文国产成人精品久久_少妇 激情毛片免费_中文字幕无码一级片在线观看_国产高清无码一v二v_99精品只有久久精品_18禁国产精品无遮挡污污污_丁香婷婷婷综合狠狠激情五月天_性欧美黑人巨大videoshd_日本色黄一区二区三区免费_黄视频网站在线观看不卡

歡迎來(lái)到合肥浪訊網(wǎng)絡(luò)科技有限公司官網(wǎng)
  咨詢服務(wù)熱線:400-099-8848

大型網(wǎng)站體系架構(gòu)剖析

發(fā)布時(shí)間:2019-11-07 文章來(lái)源:本站  瀏覽次數(shù):3002

千萬(wàn)級(jí)的注冊(cè)用戶,千萬(wàn)級(jí)的帖子,nTB級(jí)的附件,還有巨大的日拜訪量,大型網(wǎng)站選用什么體系架構(gòu)確保功用和穩(wěn)定性?

首要討論一下大型網(wǎng)站需求注意和考慮的問(wèn)題。

  • 數(shù)據(jù)庫(kù)海量數(shù)據(jù)處理:負(fù)載量不大的情況下select、delete和update是呼應(yīng)很敏捷的,最多加幾個(gè)索引就能夠搞定,但千萬(wàn)級(jí)的注冊(cè)用戶和一個(gè)規(guī)劃不好的多對(duì)多聯(lián)系將帶來(lái)十分嚴(yán)峻的功用問(wèn)題。另外在高UPDATE的情況下,更新一個(gè)聚集索引的時(shí)刻基本上是不行忍耐的。索引和更新是一對(duì)天生的冤家。
  • 高并發(fā)死鎖:平時(shí)咱們感覺(jué)不到,但數(shù)據(jù)庫(kù)死鎖在高并發(fā)的情況下的呈現(xiàn)的概率是十分高的。
  • 文件存儲(chǔ)的問(wèn)題:大型網(wǎng)站有海量圖片數(shù)據(jù)、視頻數(shù)據(jù)、文件數(shù)據(jù)等等,他們?cè)趺创鎯?chǔ)并被有用索引?高并發(fā)的情況下IO的瓶頸問(wèn)題會(huì)敏捷顯現(xiàn);蛟S用RAID和專用存貯服務(wù)器能處理眼下的問(wèn)題,但是還有個(gè)問(wèn)題便是各地的拜拜訪題,或許咱們的服務(wù)器在北京,或許在云南或許***的拜訪速度怎么處理?如果做散布式,那么咱們的文件索引以及架構(gòu)該怎么規(guī)劃。

接下來(lái)討論大型網(wǎng)站的底層體系架構(gòu),來(lái)有用的處理上述問(wèn)題。

毋庸置疑,關(guān)于規(guī)模稍大的網(wǎng)站來(lái)說(shuō),其背面必定是一個(gè)服務(wù)器集群來(lái)供給網(wǎng)站服務(wù)。當(dāng)然,數(shù)據(jù)庫(kù)也必定要和運(yùn)用服務(wù)分開(kāi),有單獨(dú)的數(shù)據(jù)庫(kù)服務(wù)器集群。關(guān)于像淘寶網(wǎng)這樣規(guī)模的網(wǎng)站而言,便是運(yùn)用也分紅許多組。

大型網(wǎng)站體系架構(gòu)剖析

下面,就從服務(wù)器操作體系與Web服務(wù)器、數(shù)據(jù)庫(kù)、服務(wù)器集群與負(fù)載均衡、緩存、獨(dú)立的圖片服務(wù)器、其它等幾個(gè)方面來(lái)剖析大型網(wǎng)站的體系架構(gòu)。

服務(wù)器操作體系與Web服務(wù)器

最底層首要是操作體系。好的操作體系能進(jìn)步好的功用、穩(wěn)定性和安全性,而這些對(duì)大型網(wǎng)站的功用、安全性和穩(wěn)定性都是至關(guān)重要的。

  • 淘寶網(wǎng)(阿里巴巴): Linux操作體系 + Web 服務(wù)器: Apache
  • 新浪:FreeBSD + Web 服務(wù)器:Apache
  • Yahoo:FreeBSD + Web 服務(wù)器:自己的
  • Google: 部分Linux + Web 服務(wù)器:自己的
  • 百度:Linux + Web 服務(wù)器: Apache
  • 網(wǎng)易:Linux + Web 服務(wù)器: Apache
  • eBay: Windows Server 2003/8 (許多) + Web 服務(wù)器:Microsoft IIS
  • MySpace: Windows Server 2003/8 + Web 服務(wù)器:Microsoft IIS

由此可見(jiàn),開(kāi)源操作體系做Web運(yùn)用是首選已經(jīng)是一個(gè)既定現(xiàn)實(shí)。在開(kāi)源操作體系中Linux和FreeBSD差不太多,很難說(shuō)哪個(gè)一定比另外一個(gè)要優(yōu)異許多、能夠全面的超越對(duì)手,應(yīng)該是各有所長(zhǎng)。但了解Linux的技能人員更多些,利于體系辦理、優(yōu)化等,所以Linux運(yùn)用更廣泛。而Windows Server和IIS雖然有的網(wǎng)站運(yùn)用,但不開(kāi)源,而且需求購(gòu)買微軟的一系列運(yùn)用產(chǎn)品,約束了其運(yùn)用?倸w,開(kāi)源操作體系,尤其是Linux做Web運(yùn)用是首選已經(jīng)是一個(gè)既定現(xiàn)實(shí)。

常用的體系架構(gòu)是:

  • Linux + Apache + PHP + MySQL
  • Linux + Apache + Java (WebSphere) + Oracle
  • Windows Server 2003/2008 + IIS + C#/ASP.NET + 數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)

由于是千萬(wàn)人一起拜訪的網(wǎng)站,所以一般是有許多個(gè)數(shù)據(jù)庫(kù)一起作業(yè)的,說(shuō)明白一點(diǎn)便是數(shù)據(jù)庫(kù)集群和并發(fā)控制,數(shù)據(jù)散布到地理位置不同的數(shù)據(jù)中心,避免發(fā)生斷電事端。

主流的數(shù)據(jù)庫(kù)有Sun的是MySQL和Oracle。

Oracle是一款優(yōu)異的、廣泛選用的商業(yè)數(shù)據(jù)庫(kù)辦理軟件。有很強(qiáng)壯的功用和安全性,能夠處理相對(duì)海量的數(shù)據(jù)。而MySQL是一款十分優(yōu)異的開(kāi)源數(shù)據(jù)庫(kù)辦理軟件,十分適合用多臺(tái)PC Server組成多點(diǎn)的存儲(chǔ)節(jié)點(diǎn)陣列(這兒我所指的不是MySQL自身供給的集群功用),每單位的數(shù)據(jù)存儲(chǔ)成本也十分的低廉。用多臺(tái)PC Server裝置MySQL組成一個(gè)存儲(chǔ)節(jié)點(diǎn)陣列,經(jīng)過(guò)MySQL自身的Replication或許運(yùn)用自身的處理,能夠很好的確保容錯(cuò)(答應(yīng)部分節(jié)點(diǎn)失效),確保運(yùn)用的健壯性和可靠性。能夠這么說(shuō),在聯(lián)系數(shù)據(jù)庫(kù)辦理體系的挑選上,能夠考慮運(yùn)用自身的情況來(lái)決議。

MySQL數(shù)據(jù)庫(kù)服務(wù)器的master-slave形式,運(yùn)用數(shù)據(jù)庫(kù)服務(wù)器在主從服務(wù)器間進(jìn)行同步,運(yùn)用只把數(shù)據(jù)寫到主服務(wù)器,而讀數(shù)據(jù)時(shí)則依據(jù)負(fù)載挑選一臺(tái)從服務(wù)器或許主服務(wù)器來(lái)讀取,將數(shù)據(jù)按不同策略劃分到不同的服務(wù)器(組)上,渙散數(shù)據(jù)庫(kù)壓力。

服務(wù)器集群與負(fù)載均衡

服務(wù)器群集中每個(gè)服務(wù)結(jié)點(diǎn)運(yùn)行一個(gè)所需服務(wù)器程序的獨(dú)立仿制,而網(wǎng)絡(luò)負(fù)載均衡則將作業(yè)負(fù)載在這些主機(jī)間進(jìn)行分配。負(fù)載均衡樹(shù)立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它供給了一種廉價(jià)有用的方法擴(kuò)展服務(wù)器帶寬和添加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理才能,進(jìn)步網(wǎng)絡(luò)的靈活性和可用性。它首要完成以下使命:處理網(wǎng)絡(luò)擁塞問(wèn)題,服務(wù)就近供給,完成地理位置無(wú)關(guān)性 ;為用戶供給更好的拜訪質(zhì)量;進(jìn)步服務(wù)器呼應(yīng)速度;進(jìn)步服務(wù)器及其他資源的運(yùn)用功率;避免了網(wǎng)絡(luò)關(guān)鍵部位呈現(xiàn)單點(diǎn)失效。

常用的服務(wù)器集群和數(shù)據(jù)庫(kù)集群負(fù)載均衡完成方法:

  • CitrixNetScaler的硬件負(fù)載均衡交換機(jī)做服務(wù)器集群的負(fù)載均衡。
  • MySQL Proxy做MySQL服務(wù)器集群的負(fù)載均衡并完成讀寫別離。其完成讀寫別離的基本原理是讓主數(shù)據(jù)庫(kù)處理事務(wù)性查詢,而從數(shù)據(jù)庫(kù)處理SELECT查詢。數(shù)據(jù)庫(kù)仿制被用來(lái)把事務(wù)性查詢導(dǎo)致的變更同步到集群中的從數(shù)據(jù)庫(kù)。
  • CDN(Content Delivery Network): 幾乎在各大網(wǎng)站都有運(yùn)用該技能。例如,使得你的網(wǎng)站在各省市拜訪更快,其原理是采取了散布式網(wǎng)絡(luò)緩存結(jié)構(gòu)(即國(guó)際上流行的web cache技能),經(jīng)過(guò)在現(xiàn)有的Internet中添加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的cache服務(wù)器內(nèi),經(jīng)過(guò)DNS負(fù)載均衡的技能,判別用戶來(lái)歷就近拜訪cache服務(wù)器獲得所需的內(nèi)容,處理Internet網(wǎng)絡(luò)擁塞狀況,進(jìn)步用戶拜訪網(wǎng)站的呼應(yīng)速度,好像供給了多個(gè)散布在各地的加速器,以達(dá)到快速、可冗余的為多個(gè)網(wǎng)站加速的意圖。

緩存

眾所周知,運(yùn)用緩存能有用應(yīng)對(duì)大負(fù)載,削減數(shù)據(jù)庫(kù)的壓力,并顯著進(jìn)步**運(yùn)用程序的功用,如果某個(gè)用戶屢次懇求同一資源,則能夠從緩存回來(lái)該資源,然后避免了從頭從服務(wù)器或數(shù)據(jù)庫(kù)懇求該資源而發(fā)生的體系開(kāi)銷。緩存能夠經(jīng)過(guò)削減獲取懇求的資源所需的時(shí)刻,進(jìn)步運(yùn)用程序功用。緩存還能夠經(jīng)過(guò)削減到服務(wù)器的往返次數(shù),下降網(wǎng)絡(luò)通信量。雖然緩存能夠進(jìn)步功用,但它也添加了回來(lái)到運(yùn)用程序的資源或許變得陳腐的危險(xiǎn)。這意味著,回來(lái)的資源或許與假設(shè)沒(méi)有運(yùn)用緩存的情況下,服務(wù)器有或許發(fā)送的資源并不徹底相同(即獲得“臟數(shù)據(jù)”)。

即便如此,簡(jiǎn)單的緩存策略也能大大進(jìn)步網(wǎng)站功用。例如,Youtube把首頁(yè)最新的視頻列表緩存60秒,也便是說(shuō)60秒內(nèi)并發(fā)的request都是從緩存讀取的,大大削減了數(shù)據(jù)庫(kù)壓力。再加上CDN,使得Youtube首頁(yè)的并發(fā)拜訪速度很快。

單機(jī)內(nèi)存緩存、文件緩存、數(shù)據(jù)庫(kù)緩存等的策略都是能夠很簡(jiǎn)單的完成的,例如能夠運(yùn)用微軟的Caching Application Block,但怎么在集群環(huán)境中使多個(gè)緩存、**緩存并保存同步是個(gè)重大問(wèn)題。大型網(wǎng)站一般都運(yùn)用緩存服務(wù)器群,并運(yùn)用**緩存。業(yè)內(nèi)最常用的有:

  • Squidcache,Squid服務(wù)器群,把它作為web服務(wù)器端前置cache服務(wù)器緩存相關(guān)懇求來(lái)進(jìn)步web服務(wù)器速度。Squid將大部分靜態(tài)資源(圖片,js,css等)緩存起來(lái),直接回來(lái)給拜訪者,削減運(yùn)用服務(wù)器的負(fù)載
  • memcache,memcache服務(wù)器群,一款散布式緩存產(chǎn)品,許多大型網(wǎng)站在運(yùn)用; 它能夠應(yīng)對(duì)任意多個(gè)連接,運(yùn)用非堵塞的網(wǎng)絡(luò)IO。由于它的作業(yè)機(jī)制是在內(nèi)存中拓荒一塊空間,然后樹(shù)立一個(gè)HashTable,Memcached自辦理這些HashTable。由于一般網(wǎng)站運(yùn)用程序中最耗費(fèi)時(shí)刻的使命是數(shù)據(jù)在數(shù)據(jù)庫(kù)的檢索,而多個(gè)用戶查詢相同的SQL時(shí),數(shù)據(jù)庫(kù)壓力會(huì)增大,而經(jīng)過(guò)memcache的查詢緩存射中,數(shù)據(jù)直接從memcache內(nèi)存中取,每次緩存射中將替換到數(shù)據(jù)庫(kù)服務(wù)器的一次往返,到達(dá)數(shù)據(jù)庫(kù)服務(wù)器的懇求更少,間接地進(jìn)步了數(shù)據(jù)庫(kù)服務(wù)器的功用,然后使運(yùn)用程序運(yùn)行得更快。它經(jīng)過(guò)基于內(nèi)存緩存目標(biāo)來(lái)削減數(shù)據(jù)庫(kù)查詢的方式改進(jìn)網(wǎng)站體系的反響,其最吸引人的一個(gè)特性便是支持散布式布置。有關(guān)memcache,以下文章能夠參閱:參閱1,參閱2,參閱3官方站點(diǎn)。
  • e-Accelerator,比較特別,PHP的緩存和加速器。是一個(gè)免費(fèi)開(kāi)源的PHP加速、優(yōu)化、編譯和動(dòng)態(tài)緩存的項(xiàng)目,它能夠經(jīng)過(guò)緩存PHP代碼編譯后的成果來(lái)進(jìn)步PHP腳本的功用,使得一貫很雜亂和離咱們很遠(yuǎn)的 PHP腳本編譯問(wèn)題徹底得到處理。經(jīng)過(guò)運(yùn)用eAccelerator,能夠優(yōu)化你的PHP代碼執(zhí)行速度,下降服務(wù)器負(fù)載,能夠進(jìn)步PHP運(yùn)用執(zhí)行速度最高達(dá)10倍。

獨(dú)立的圖片服務(wù)器

無(wú)論從辦理上,還是從功用上看,只要有或許,盡量布置獨(dú)立的圖片服務(wù)器。這幾乎成為知識(shí)了。具有獨(dú)立的圖片服務(wù)器或許服務(wù)器集群后,在 Web 服務(wù)器上就能夠有針對(duì)性的進(jìn)行裝備優(yōu)化。

其他

一個(gè)互聯(lián)網(wǎng)運(yùn)用,除了服務(wù)器的操作體系,Web Server軟件,運(yùn)用服務(wù)器軟件,數(shù)據(jù)庫(kù)軟件外,咱們還會(huì)涉及到一些其他的體系,比方一些中間件體系、文件存儲(chǔ)體系(圖片服務(wù)器,視頻服務(wù)器,辦理服務(wù)器,RSS和廣告服務(wù)器等等)、全文檢索、搜索、等等。會(huì)在今后介紹

上一條:音樂(lè)與規(guī)劃——了解色彩運(yùn)...

下一條:網(wǎng)頁(yè)規(guī)劃著作賞識(shí):用花朵...