當前位置:律師網大全 - 註冊公司 - 什麽是網站架構?

什麽是網站架構?

網站架構壹般被認為是根據客戶需求分析的結果,準確定位網站的目標群體,設定網站的整體框架,規劃設計網站欄目及其內容,制定網站開發流程和順序,從而最大限度地進行高效資源分配和管理的設計。其內容有三種表現形式:程序架構、表現架構和信息架構。步驟主要分為兩個步驟:硬架構和軟架構。網絡體系結構是現代網絡學習和發展必不可少的基礎技術。

中文名

網站架構

人們普遍認為

根據客戶需求分析的結果

規劃

網站開發過程和順序

內容

程序架構、表示架構

快的

航行

軟建築的八種方案

硬架構

計算機房的選擇

在選擇機房的時候,根據網站用戶的地域分布,可以選擇網通或者電信機房,但更多的時候,雙線機房可能比較合適。城市越大,機房越貴。從成本上看,服務器可以托管在壹些中小城市。比如北京的公司可以考慮在天津、廊坊等地托管服務器,雖然不是特別遠,但是價格會便宜很多。

帶寬的大小

通常老板付錢給我們建網站的時候會給我們壹些目標,比如網站要能承受每天654.38+0萬的PV訪問量。這個時候,我們需要估算壹下需要多少帶寬。帶寬的計算主要涉及兩個指標(峰值流量和頁面大小)。我們不妨在計算前做必要的假設:

首先,假設峰值流速是平均流速的五倍。

第二:假設每次訪問的平均頁面大小約為100K字節。

如果1萬PV的訪問量平均分布在壹天內,相當於每秒12次左右的訪問量。如果每次訪問的平均頁面大小約為100 K字節,那麽這12次訪問的總和約為1200K字節,字節的單位為byte,帶寬的單位為bit。它們之間的關系是1Byte = 8bit,所以1200K Byte大致相當於9600K bit,也就是9Mbps。事實上,我們的網站必須能夠在流量高峰期維持正常訪問,所以按照假設的流量峰值,真實的帶寬需求應該在45Mbps左右。

當然,這個結論是基於上面提到的兩個假設。如果妳的實際情況和這兩個假設不壹樣,結果就不壹樣了。

服務器的劃分

先看看我們需要哪些服務器:圖片服務器、頁面服務器、數據庫服務器、應用服務器、日誌服務器等等。

對於壹個訪問量很大的網站來說,把單獨的圖片服務器和頁面服務器分開是相當必要的。我們可以使用lighttpd運行圖片服務器,使用apache運行頁面服務器。當然,我們也可以選擇別的。甚至,我們可以擴展到很多圖片服務器,很多頁面服務器,設置相關域名,比如img.domain,www.domain,頁面中的圖片路徑都使用絕對路徑,比如

數據庫服務器是最重要的,因為網站的瓶頸問題十有八九是數據庫。壹般中小型網站多采用MySQL數據庫,但其聚類功能似乎還沒到穩定階段,在此不做評論。壹般來說,使用MySQL數據庫時,要有主從(壹主多從)結構。主數據庫服務器采用innodb表結構,從數據服務器采用myisam表結構,充分發揮各自的優勢。而且這種主從結構將讀寫操作分開,減輕了讀操作的壓力,甚至我們可以設置專門的從服務器作為備份服務器,方便備份。否則,如果妳只有壹臺主服務器,那麽在數據量很大的情況下,mysqldump基本沒希望。如果直接復制數據文件,在復制之前必須停止數據庫服務,否則備份文件會出錯。但對於很多網站來說,哪怕數據庫服務只停壹秒鐘,也是不可接受的。如果有從數據庫服務器,備份數據時,可以在備份前停止服務(slave stop),然後啟動服務(slave start),然後從服務器會自動同步來自主服務器的數據,不會有任何影響。但是主從結構也有致命的缺點,就是主從結構只是降低了讀操作的壓力,而不能降低寫操作的壓力。

為了適應更大的規模,可能只剩下最後壹招:橫向/縱向拆分數據庫。所謂橫向拆分數據庫,就是將不同的表保存到不同的數據庫服務器上,比如用戶表保存在A數據庫服務器上,文章表保存在B數據庫服務器上。當然這樣的拆分是有代價的,最基本的是不能做左連接之類的操作。所謂垂直劃分的數據庫,壹般是指按照用戶標識(user_id)等劃分數據存儲的服務器。比如我們有五臺數據庫服務器,“user_id% 5+1”等於1,就保存到服務器1,如果等於2,就保存到服務器2,以此類推。但是,和數據庫的橫向分割壹樣,數據庫的縱向分割也是有代價的。最基本的是,我們在做計數、求和等匯總運算時會有很多麻煩。綜上所述,數據庫服務器的解決方案通常是根據情況采用混合解決方案,以充分發揮各種解決方案的優勢,有時還需要memcached等第三方軟件來滿足更多訪問的要求。

有專門的應用服務器運行PHP腳本是最合適的,所以我們的頁面服務器只能保存靜態頁面,我們可以為應用服務器設置app.domain等壹些域名,以區別於頁面服務器。至於應用服務器,我更喜歡在prefork模式下使用apache,必要時使用xcache等PHP緩存軟件。加載的模塊越少越好。除了mod_rewrite等必要的模塊之外,所有不必要的東西都被丟棄,盡量減少httpd進程的內存消耗,而圖像服務器、頁面服務器等那些靜態的內容可以用lighttpd或者tux來做,充分發揮各種服務器的特點。

如果條件允許,獨立的日誌服務器也是必要的。壹般小網站的做法是將頁面服務器和日誌服務器合二為壹,cron會在淩晨流量小的時候運行前壹天的日誌計算。但如果使用awstats等日誌分析軟件,即使按日歸檔百萬訪客,計算起來也會消耗大量時間和服務器資源,因此將單獨的日誌服務器分離出來是有好處的,不會影響官方服務器的工作狀態。

軟建築

框架的選擇

PHP框架有很多選項,如CakePHP、Symfony、Zend Framework等。至於應該用哪壹個,沒有唯壹的答案,這取決於團隊成員對每個框架的了解程度。很多時候,即使不使用框架,依然可以寫出好的程序。比如Flickr,據說是用Pear+Smarty這樣的類庫寫的。所以,是否使用框架壹般不是最重要的。重要的是我們在編程思維上要有框架意識。

分層邏輯

  • 上一篇:什麽是期貨交易?
  • 下一篇:離岸公司註冊
  • copyright 2024律師網大全