![大型高并發(fā)網(wǎng)站地系統(tǒng)架構(gòu)_第1頁](http://file4.renrendoc.com/view/bb8d1244b3e9ee7fc07777e549155bea/bb8d1244b3e9ee7fc07777e549155bea1.gif)
![大型高并發(fā)網(wǎng)站地系統(tǒng)架構(gòu)_第2頁](http://file4.renrendoc.com/view/bb8d1244b3e9ee7fc07777e549155bea/bb8d1244b3e9ee7fc07777e549155bea2.gif)
![大型高并發(fā)網(wǎng)站地系統(tǒng)架構(gòu)_第3頁](http://file4.renrendoc.com/view/bb8d1244b3e9ee7fc07777e549155bea/bb8d1244b3e9ee7fc07777e549155bea3.gif)
![大型高并發(fā)網(wǎng)站地系統(tǒng)架構(gòu)_第4頁](http://file4.renrendoc.com/view/bb8d1244b3e9ee7fc07777e549155bea/bb8d1244b3e9ee7fc07777e549155bea4.gif)
![大型高并發(fā)網(wǎng)站地系統(tǒng)架構(gòu)_第5頁](http://file4.renrendoc.com/view/bb8d1244b3e9ee7fc07777e549155bea/bb8d1244b3e9ee7fc07777e549155bea5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實用標(biāo)準文案大型高并發(fā)網(wǎng)站的系統(tǒng)架構(gòu)從目錄中就可以看出來 ,這是一本超越純粹代碼范疇的書 .涉及到開發(fā)工具 ,開發(fā)方法,開發(fā)過程,體系結(jié)構(gòu),應(yīng)用分層,常用web 功能舉例和注意事項 ,性能瓶頸,擴展并提出一些解決方法,最后還涉及到性能的監(jiān)控方法 .擴展Web應(yīng)用程序一、概念簡單的來說,如果一個系統(tǒng)可擴展, 那么你可以通過擴展來提供系統(tǒng)的性能。 這代表著系統(tǒng)能夠容納更高的負載、更大的數(shù)據(jù)集,并且系統(tǒng)是可維護的。 擴展和語言、某項具體的技術(shù)都是無關(guān)的。擴展可以分為兩種:1.垂直擴展(stadeup ),通俗的說就是將某臺單一的機器的性能提升的更高, 如添加內(nèi)存、更換更強的處理器等等。水平擴展(out),通俗的說就是添加新的機器。對比可以發(fā)現(xiàn),水平擴展比垂直擴展有更強大的擴展性, 可以說是“無限”擴展, 畢竟單臺的機器的性能總是有限的,硬件的技術(shù)發(fā)展還趕不上 web的發(fā)展。但同時,水平擴展也來精彩文檔實用標(biāo)準文案了更高的維護成本。實際中,需要根據(jù)具體情況來尋求一個平衡點。二、冗余機器總可能會發(fā)生故障,而唯一的保證故障狀況下服務(wù)依然可用的辦法就是由多個硬件備份。備份可以分為熱備份和冷備份, 注意的區(qū)別在于數(shù)據(jù)服務(wù)是否在線, 數(shù)據(jù)在線服務(wù)的同時進行的備份成為熱備份。例如將 mysql 服務(wù)器關(guān)閉,然后拷貝數(shù)據(jù)文件到備份位置,則是典型的冷備份行為。三、負載均衡當(dāng)我們使用了水平擴展之后, 我們開始考慮新的問題了, 如何將大量的請求“均衡”到我們的擴展機器上呢?兩種負載均衡模式:有狀態(tài)(如有攜帶 session)和無狀態(tài)兩種負載均衡方式:硬件均衡和軟件均衡硬件均衡比較簡單,通常接入一個設(shè)備即可, 之后的均衡和故障檢測等等都由硬件自動完成。成本較高。軟件均衡則是通過軟件來轉(zhuǎn)發(fā)各種請求, 更加容易的定義轉(zhuǎn)發(fā)規(guī)則, 有較多的開源產(chǎn)品選擇。精彩文檔實用標(biāo)準文案第四層和第七層經(jīng)常在負載均衡中看到第四層和第七層這兩個名詞。 它們實際上是指它們各自工作時所處理的網(wǎng)絡(luò)協(xié)議的層數(shù)(使用 ISO模型)。第四層是數(shù)據(jù)傳輸層,包括 TCP和UDP,第七層則是應(yīng)用層,通常 web中為HTTP應(yīng)用。如Apache、nginx等支持第七層的均衡,而且可配置性都相當(dāng)強大,能夠適應(yīng)較復(fù)雜的應(yīng)用。例如可以簡單的將流量分擔(dān)到各個負載機上,也可以定義一套業(yè)務(wù)規(guī)則,將應(yīng)用劃分為不同的池,每個池處理某些固定規(guī)則的URL。對比軟件均衡與硬件均衡,可以發(fā)現(xiàn)它們各自的優(yōu)缺點:硬件均衡成本比較高,軟件均衡多數(shù)可以使用免費的開源軟件來實現(xiàn)。硬件均衡對于故障檢測比軟件均衡更加強大、快速。在采用硬件均衡時,一旦某臺機器出現(xiàn)故障,馬上就可以檢測出來并立即屏蔽。硬件均衡可以快速的添加機器(接入硬件接口即可),而軟件均衡除了添加機器外還要添加一些配置信息,以將某些流量導(dǎo)入到新的機器。軟件均衡可以定義非常復(fù)雜的業(yè)務(wù)規(guī)則,而硬件均衡在這方面相對較弱。精彩文檔實用標(biāo)準文案5.多數(shù)的硬件均衡方案都有捆綁附加的一些服務(wù)如 HTTPS加速、DOS防火墻等等。還有一種比較流行的方案: DNS解析。這種方式對解決用戶分布在不同地理位置、不同網(wǎng)絡(luò)的情況有著相當(dāng)好的效果,每個用戶都可以根據(jù)自己的網(wǎng)絡(luò)得到一個較快速的訪問 IP。缺點也比較明顯: DNS更新緩慢,對于實時性的均衡幾乎沒有什么作用,因為 DNS的更新往往需要一兩個小時,甚至一兩天。四、使用緩存使用緩存將某些實時性要求不高的服務(wù)結(jié)果緩存起來是大型應(yīng)用解決方案的一個共識, 合理的使用緩存將極大的改善應(yīng)用體驗和性能。常用的幾類緩存:緩存數(shù)據(jù):memcached memcachedb緩存HTTP請求: squid用戶瀏覽器緩存說說大型高并發(fā)高負載網(wǎng)站的系統(tǒng)架構(gòu)精彩文檔實用標(biāo)準文案發(fā)布:倪海濤來自:BudiC更新:2010-03-1511:53:58轉(zhuǎn)帖:摘要:一個小型的網(wǎng)站,比如個人網(wǎng)站,可以使用最簡單的 html 靜態(tài)頁面就實現(xiàn)了。隨著互聯(lián)網(wǎng)業(yè)務(wù)的不斷豐富,網(wǎng)站相關(guān)的技術(shù)經(jīng)過這些年的發(fā)展,已經(jīng)細分到很細的方方面面,尤其對于大型網(wǎng)站來說, 所采用的技術(shù)更是涉及面非常廣,從硬件到軟件、 編程語言、數(shù)據(jù)庫、WebServer 、防火墻等各個領(lǐng)域都有了很高的要求, 已經(jīng)不是原來簡單的 html 靜態(tài)網(wǎng)站所能比擬的。前言鄙人先后在 CERNET 做過撥號接入,在 Yahoo&3721 搞過搜索前端,在貓撲處理過 的架構(gòu)升級,在 6.cn視頻網(wǎng)站從事開發(fā)工作,還在多年的工作中接觸和開發(fā)過不少大中型網(wǎng)站的模塊,因此在大型網(wǎng)站應(yīng)對高負載和并發(fā)的解決方案上有一些積累和經(jīng)驗,希望和大家一起探討。一個小型的網(wǎng)站,比如個人網(wǎng)站,可以使用最簡單的 html 靜態(tài)頁面就實現(xiàn)了,配合一些圖片達到美化效果, 所有的頁面均存放在一個目錄下, 這樣的網(wǎng)站對系統(tǒng)架構(gòu)、 性能的要求都很簡單,隨著互聯(lián)網(wǎng)業(yè)務(wù)的不斷豐富, 網(wǎng)站相關(guān)的技術(shù)經(jīng)過這些年的發(fā)展, 已經(jīng)細分到很細的方方面面,尤其對于大型網(wǎng)站來說,所采用的技術(shù)更是涉及面非常廣,從硬件到軟件、編精彩文檔實用標(biāo)準文案程語言、數(shù)據(jù)庫、 WebServer 、防火墻等各個領(lǐng)域都有了很高的要求,已經(jīng)不是原來簡單的html 靜態(tài)網(wǎng)站所能比擬的。大型網(wǎng)站,比如門戶網(wǎng)站。在面對大量用戶訪問、 高并發(fā)請求方面,基本的解決方案集中在這樣幾個環(huán)節(jié):使用高性能的服務(wù)器、高性能的數(shù)據(jù)庫、 高效率的編程語言、還有高性能的Web容器。但是除了這幾個方面,還沒法根本解決大型網(wǎng)站面臨的高負載和高并發(fā)問題。上面提供的幾個解決思路在一定程度上也意味著更大的投入,并且這樣的解決思路具備瓶頸,沒有很好的擴展性,下面我從低成本、高性能和高擴張性的角度來說說我的一些經(jīng)驗。1、HTML靜態(tài)化其實大家都知道,效率最高、消耗最小的就是純靜態(tài)化的 html 頁面,所以我們盡可能使我們的網(wǎng)站上的頁面采用靜態(tài)頁面來實現(xiàn), 這個最簡單的方法其實也是最有效的方法。 但是對于大量內(nèi)容并且頻繁更新的網(wǎng)站, 我們無法全部手動去挨個實現(xiàn), 于是出現(xiàn)了我們常見的信息發(fā)布系統(tǒng) CMS,像我們常訪問的各個門戶站點的新聞頻道,甚至他們的其他頻道,都是通過信息發(fā)布系統(tǒng)來管理和實現(xiàn)的, 信息發(fā)布系統(tǒng)可以實現(xiàn)最簡單的信息錄入自動生成靜態(tài)頁面,還能具備頻道管理、權(quán)限管理、自動抓取等功能,對于一個大型網(wǎng)站來說,擁有一套高效、可管理的 CMS是必不可少的。除了門戶和信息發(fā)布類型的網(wǎng)站, 對于交互性要求很高的社區(qū)類型網(wǎng)站來說, 盡可能的靜態(tài)化也是提高性能的必要手段, 將社區(qū)內(nèi)的帖子、 文章進行實時的靜態(tài)化, 有更新的時候再重新靜態(tài)化也是大量使用的策略,像 Mop 的大雜燴就是使用了這樣的策略,網(wǎng)易社區(qū)等也是精彩文檔實用標(biāo)準文案如此。目前很多博客也都實現(xiàn)了靜態(tài)化,我使用的這個 Blog 程序WordPress 還沒有靜態(tài)化,所以如果面對高負載訪問, 一定不能承受同時,html 靜態(tài)化也是某些緩存策略使用的手段,對于系統(tǒng)中頻繁使用數(shù)據(jù)庫查詢但是內(nèi)容更新很小的應(yīng)用,可以考慮使用 html 靜態(tài)化來實現(xiàn),比如論壇中論壇的公用設(shè)置信息,這些信息目前的主流論壇都可以進行后臺管理并且存儲再數(shù)據(jù)庫中, 這些信息其實大量被前臺程序調(diào)用,但是更新頻率很小,可以考慮將這部分內(nèi)容進行后臺更新的時候進行靜態(tài)化,這樣避免了大量的數(shù)據(jù)庫訪問請求。在進行html 靜態(tài)化的時候可以使用一種折中的方法,就是前端使用動態(tài)實現(xiàn),在一定的策略下進行定時靜態(tài)化和定時判斷調(diào)用, 這個能實現(xiàn)很多靈活性的操作, 我開發(fā)的臺球網(wǎng)站故人居 就是使用了這樣的方法,我通過設(shè)定一些 html 靜態(tài)化的時間間隔來對動態(tài)網(wǎng)站內(nèi)容進行緩存, 達到分擔(dān)大部分的壓力到靜態(tài)頁面上, 可以應(yīng)用于中小型網(wǎng)站的架構(gòu)上。故人居網(wǎng)站的地址: ,順便提一下,有喜歡臺球的朋友多多支持我這個免費網(wǎng)站 :)、圖片服務(wù)器分離大家知道,對于 Web服務(wù)器來說,不管是 Apache、IIS還是其他容器,圖片是最消耗資源的,于是我們有必要將圖片與頁面進行分離, 這是基本上大型網(wǎng)站都會采用的策略, 他們都有獨立的圖片服務(wù)器, 甚至很多臺圖片服務(wù)器。 這樣的架構(gòu)可以降低提供頁面訪問請求的服務(wù)器系統(tǒng)壓力,并且可以保證系統(tǒng)不會因為圖片問題而崩潰。精彩文檔實用標(biāo)準文案在應(yīng)用服務(wù)器和圖片服務(wù)器上,可以進行不同的配置優(yōu)化,比如 Apache 在配置ContentType 的時候可以盡量少支持,盡可能少的 LoadModule ,保證更高的系統(tǒng)消耗和執(zhí)行效率。我的臺球網(wǎng)站故人居 8 也使用了圖片服務(wù)器架構(gòu)上的分離, 目前是僅僅是架構(gòu)上分離,物理上沒有分離,由于沒有錢買更多的服務(wù)器 :),大家可以看到故人居上的圖片連接都是類似 或者 的URL。另外,在處理靜態(tài)頁面或者圖片、 js等訪問方面,可以考慮使用 lighttpd 代替Apache,它提供了更輕量級和更高效的處理能力。、數(shù)據(jù)庫集群和庫表散列大型網(wǎng)站都有復(fù)雜的應(yīng)用, 這些應(yīng)用必須使用數(shù)據(jù)庫, 那么在面對大量訪問的時候, 數(shù)據(jù)庫的瓶頸很快就能顯現(xiàn)出來, 這時一臺數(shù)據(jù)庫將很快無法滿足應(yīng)用, 于是我們需要使用數(shù)據(jù)庫集群或者庫表散列。在數(shù)據(jù)庫集群方面, 很多數(shù)據(jù)庫都有自己的解決方案, Oracle、Sybase等都有很好的方案,常用的MySQL 提供的Master/Slave 也是類似的方案,您使用了什么樣的 DB,就參考相應(yīng)的解決方案來實施即可。上面提到的數(shù)據(jù)庫集群由于在架構(gòu)、 成本、擴張性方面都會受到所采用 DB類型的限制,于是我們需要從應(yīng)用程序的角度來考慮改善系統(tǒng)架構(gòu),庫表散列是常用并且最有效的解決方精彩文檔實用標(biāo)準文案案。我們在應(yīng)用程序中安裝業(yè)務(wù)和應(yīng)用或者功能模塊將數(shù)據(jù)庫進行分離, 不同的模塊對應(yīng)不同的數(shù)據(jù)庫或者表, 再按照一定的策略對某個頁面或者功能進行更小的數(shù)據(jù)庫散列, 比如用戶表,按照用戶 ID進行表散列,這樣就能夠低成本的提升系統(tǒng)的性能并且有很好的擴展性。sohu的論壇就是采用了這樣的架構(gòu),將論壇的用戶、設(shè)置、帖子等信息進行數(shù)據(jù)庫分離,然后對帖子、用戶按照板塊和 ID進行散列數(shù)據(jù)庫和表,最終可以在配置文件中進行簡單的配置便能讓系統(tǒng)隨時增加一臺低成本的數(shù)據(jù)庫進來補充系統(tǒng)性能。、緩存緩存一詞搞技術(shù)的都接觸過, 很多地方用到緩存。 網(wǎng)站架構(gòu)和網(wǎng)站開發(fā)中的緩存也是非常重要。這里先講述最基本的兩種緩存。高級和分布式的緩存在后面講述。架構(gòu)方面的緩存,對 Apache 比較熟悉的人都能知道 Apache 提供了自己的 mod_proxy緩存模塊,也可以使用外加的 Squid 進行緩存,這兩種方式均可以有效的提高 Apache 的訪問響應(yīng)能力。網(wǎng)站程序開發(fā)方面的緩存, Linux上提供的 Memcached 是常用的緩存方案,不少 web編程語言都提供 memcache 訪問接口,php、perl、c和java都有,可以在web開發(fā)中使用,可以實時或者 Cron的把數(shù)據(jù)、對象等內(nèi)容進行緩存,策略非常靈活。一些大型社區(qū)使用了這樣的架構(gòu)。另外,在使用 web 語言開發(fā)的時候,各種語言基本都有自己的緩存模塊和方法, PHP有Pear的Cache模塊和eAccelerator 加速和Cache模塊,還要知名的 Apc、XCache(國精彩文檔實用標(biāo)準文案人開發(fā)的,支持?。﹑hp緩存模塊,Java就更多了,.net不是很熟悉,相信也肯定有。、鏡像鏡像是大型網(wǎng)站常采用的提高性能和數(shù)據(jù)安全性的方式, 鏡像的技術(shù)可以解決不同網(wǎng)絡(luò)接入商和地域帶來的用戶訪問速度差異, 比如ChinaNet 和EduNet 之間的差異就促使了很多網(wǎng)站在教育網(wǎng)內(nèi)搭建鏡像站點, 數(shù)據(jù)進行定時更新或者實時更新。 在鏡像的細節(jié)技術(shù)方面, 這里不闡述太深,有很多專業(yè)的現(xiàn)成的解決架構(gòu)和產(chǎn)品可選。 也有廉價的通過軟件實現(xiàn)的思路,比如Linux上的rsync等工具。、負載均衡負載均衡將是大型網(wǎng)站解決高負荷訪問和大量并發(fā)請求采用的終極解決辦法。負載均衡技術(shù)發(fā)展了多年, 有很多專業(yè)的服務(wù)提供商和產(chǎn)品可以選擇, 我個人接觸過一些解決方法,其中有兩個架構(gòu)可以給大家做參考。另外有關(guān)初級的負載均衡 DNS輪循和較專業(yè)的CDN架構(gòu)就不多說了。6.1 硬件四層交換第四層交換使用第三層和第四層信息包的報頭信息, 根據(jù)應(yīng)用區(qū)間識別業(yè)務(wù)流, 將整個區(qū)間段的業(yè)務(wù)流分配到合適的應(yīng)用服務(wù)器進行處理。 第四層交換功能就象是虛 IP,指向物理服務(wù)器。它傳輸?shù)臉I(yè)務(wù)服從的協(xié)議多種多樣,有 HTTP、FTP、NFS、Telnet或其他協(xié)議。這些業(yè)務(wù)在物理服務(wù)器基礎(chǔ)上,需要復(fù)雜的載量平衡算法。在 IP世界,業(yè)務(wù)類型由終端 TCP或UDP端口地址來決定,在第四層交換中的應(yīng)用區(qū)間則由源端和終端 IP地址、TCP和UDP精彩文檔實用標(biāo)準文案端口共同決定。在硬件四層交換產(chǎn)品領(lǐng)域,有一些知名的產(chǎn)品可以選擇,比如 Alteon 、F5等,這些產(chǎn)品很昂貴,但是物有所值,能夠提供非常優(yōu)秀的性能和很靈活的管理能力。 Yahoo 中國當(dāng)初接近2000臺服務(wù)器使用了三四臺 Alteon 就搞定了。6.2 軟件四層交換大家知道了硬件四層交換機的原理后, 基于OSI模型來實現(xiàn)的軟件四層交換也就應(yīng)運而生,這樣的解決方案實現(xiàn)的原理一致,不過性能稍差。但是滿足一定量的壓力還是游刃有余的,有人說軟件實現(xiàn)方式其實更靈活,處理能力完全看你配置的熟悉能力。軟件四層交換我們可以使用 Linux上常用的LVS來解決,LVS就是LinuxVirtualServer ,他提供了基于心跳線 heartbeat 的實時災(zāi)難應(yīng)對解決方案,提高系統(tǒng)的魯棒性,同時可供了靈活的虛擬 VIP配置和管理功能,可以同時滿足多種應(yīng)用需求,這對于分布式的系統(tǒng)來說必不可少。一個典型的使用負載均衡的策略就是,在軟件或者硬件四層交換的基礎(chǔ)上搭建 squid 集群,這種思路在很多大型網(wǎng)站包括搜索引擎上被采用, 這樣的架構(gòu)低成本、 高性能還有很強的擴張性,隨時往架構(gòu)里面增減節(jié)點都非常容易。 這樣的架構(gòu)我準備空了專門詳細整理一下和大家探討。6.3 七層交換精彩文檔實用標(biāo)準文案大家都知道 TCP/I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中語文詩歌部分第四單元金黃的稻束地之子半棵樹邊界望鄉(xiāng)習(xí)題含解析新人教版選修中國現(xiàn)代詩歌散文欣賞
- 校衛(wèi)隊退隊申請書
- 改名字申請書
- 舊房改建申請書
- 2025年度國際貿(mào)易摩擦應(yīng)對咨詢服務(wù)合同匯編
- 2025年度城市安全防范造價咨詢與應(yīng)急管理體系合同
- 《鄒忌諷齊王納諫》比較閱讀82篇(歷年中考語文文言文閱讀試題匯編)(含答案與翻譯)(截至2024年)
- 2025年度國際市場鴨苗出口合作協(xié)議書
- 電子商務(wù)的供應(yīng)鏈管理創(chuàng)新
- 2025年度汪怡與李明正式離婚財產(chǎn)分割及子女撫養(yǎng)協(xié)議書
- 采礦學(xué)課程設(shè)計-隆德煤礦1.8Mta新井開拓設(shè)計
- 桂花-作文ppt-PPT課件(共14張)
- 高一數(shù)學(xué)概率部分知識點總結(jié)及典型例題解析 新課標(biāo) 人教版 必修
- 滴灌工程設(shè)計示例
- 鐵路運費計算方法
- 《小腦梗死護理查房》
- 免疫及炎癥相關(guān)信號通路
- 醫(yī)院室外管網(wǎng)景觀綠化施工組織設(shè)計
- 某風(fēng)電場設(shè)備材料設(shè)備清單
- —橋梁專業(yè)施工圖設(shè)計審查要(終)
- 德龍自卸車合格證掃描件(原圖)
評論
0/150
提交評論