在大型網(wǎng)站中,訪問(wèn)者看到的頁(yè)面基本上是靜態(tài)頁(yè)面。為什么都要把頁(yè)面靜態(tài)化呢?把頁(yè)面靜態(tài)化,好處有很多。例如:訪問(wèn)速度快,更有利于搜索引擎收錄 等。目前主流的靜態(tài)化主要有兩種:一種是通過(guò)程序?qū)?dòng)態(tài)頁(yè)面抓取并保存為靜態(tài)頁(yè)面,這樣的頁(yè)面的實(shí)際存在于服務(wù)器的硬盤中,另外一種是通過(guò)WEB服務(wù)器的 URL Rewrite的方式,他的原理是通過(guò)web服務(wù)器內(nèi)部模塊按一定規(guī)則將外部的URL請(qǐng)求轉(zhuǎn)化為內(nèi)部的文件地址,一句話來(lái)說(shuō)就是把外部請(qǐng)求的靜態(tài)地址轉(zhuǎn)化 為實(shí)際的動(dòng)態(tài)頁(yè)面地址,而靜態(tài)頁(yè)面實(shí)際是不存在的。這兩種方法都達(dá)到了實(shí)現(xiàn)URL靜態(tài)化的效果,但是也各有各自的特點(diǎn)。
將動(dòng)態(tài)頁(yè)面轉(zhuǎn)化為實(shí)際存在的靜態(tài)頁(yè)面這種方法,由于靜態(tài)頁(yè)面的存在,少了動(dòng)態(tài)解析過(guò)程,所以提高了頁(yè)面的訪問(wèn)速度和穩(wěn)定性,使得優(yōu)化效果非常明顯。所以這種方法被廣泛采用。但是它的局限性同樣存在。對(duì)于大型網(wǎng)站而言,這種方法將帶來(lái)不可忽視的問(wèn)題。
一、由于生成的文件數(shù)量較多,存儲(chǔ)需要考慮文件、文件夾的數(shù)量問(wèn)題和磁盤空間容量的問(wèn)題;
二、頁(yè)面維護(hù)的復(fù)雜性和大工作量,及帶來(lái)的頁(yè)面維護(hù)及時(shí)性問(wèn)題,需要一整套站點(diǎn)更新制度。
而URL Rewrite方式特點(diǎn)同樣鮮明,由于是服務(wù)器內(nèi)部解析的地址,所以內(nèi)容是實(shí)時(shí)更新的,也不存在文件管理和硬件問(wèn)題,維護(hù)比較方便。在服務(wù)器級(jí)URL Rewrite重寫技術(shù)并不影響頁(yè)面的執(zhí)行速度。但是URL Rewrite的門檻比較高,國(guó)內(nèi)虛擬主機(jī)大多不支持,而且虛擬主機(jī)是目錄級(jí)的URL Rewrite,通過(guò)遍歷目錄讀物URL轉(zhuǎn)發(fā)規(guī)則的方式將大大降低頁(yè)面的執(zhí)行速度。
除了抓取動(dòng)態(tài)頁(yè)面和URL Rewrite的方法外,在這里我們?cè)倏匆幌铝硗獾囊环N方法。此方法的核心思想就是:把頁(yè)面劃分成子數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊可能是一個(gè)inc文件,也可能多個(gè) 數(shù)據(jù)塊包含在一個(gè)inc文件中。具體的數(shù)據(jù)塊劃分根據(jù)頁(yè)面的業(yè)務(wù)結(jié)構(gòu)來(lái)處理。比如:網(wǎng)站頭尾等公共數(shù)據(jù)塊可以獨(dú)立成一個(gè)文件。這種方法需要考慮以下幾個(gè)方 面:
1、用什么方式生成頁(yè)面及里面的數(shù)據(jù)塊
2、頁(yè)面的更新機(jī)制;
3、大量的頁(yè)面文件的維護(hù)工作;
4、頁(yè)面數(shù)據(jù)塊的及時(shí)性。
這種方式的話,通常可以在后臺(tái)增加一個(gè)服務(wù)程序,專門生成某個(gè)頻道或欄目的頁(yè)面。這樣雖然可行,按照頻道分的話,邏輯結(jié)構(gòu)也清晰。
這樣會(huì)帶來(lái)一些問(wèn)題。例如:當(dāng)頻道修改后,相應(yīng)的服務(wù)程序都要重新翻一遍。如果頻道欄目很多,對(duì)應(yīng)的服務(wù)程序也會(huì)很多,導(dǎo)致程序的維護(hù)工作量大。前臺(tái)開發(fā)人員不僅要去做頁(yè)面,也要考慮后臺(tái)的服務(wù)程序結(jié)構(gòu),給他們?cè)黾恿瞬槐匾拈_發(fā)難度,降低了開發(fā)效率。
而在多服務(wù)模式下,會(huì)出現(xiàn)多臺(tái)服務(wù)去爭(zhēng)搶指令數(shù)據(jù)的情況。動(dòng)作指令的狀態(tài)必須在多個(gè)服務(wù)之間同步。服務(wù)升級(jí)了,也要一個(gè)一個(gè)去更新,出現(xiàn)錯(cuò)誤了也要一個(gè)一個(gè)去排查。。。。。。
那么有沒(méi)有一種方法能把生成頁(yè)面的功能獨(dú)立抽象成一個(gè)平臺(tái),同時(shí)提供一個(gè)程序接口,前臺(tái)開發(fā)人員只需要按照這個(gè)接口,開發(fā)業(yè)務(wù)組件即可。現(xiàn)在前臺(tái)開發(fā)人員 只需要把寫好的業(yè)務(wù)組件,部署到指定的地方即可。剩下的事情交給這個(gè)平臺(tái)去做,這樣就簡(jiǎn)化了系統(tǒng)發(fā)布,維護(hù)工作,減輕了前臺(tái)開發(fā)人員的工作量,提高了他們 的開發(fā)效率。
動(dòng)作指令是指頁(yè)面更新的動(dòng)作,當(dāng)頁(yè)面數(shù)據(jù)有變化時(shí),會(huì)根據(jù)業(yè)務(wù)規(guī)則從某個(gè)地方發(fā)出一個(gè)動(dòng)作。它的來(lái)源大致可以分為三種:前臺(tái)頁(yè)面觸發(fā),后臺(tái)內(nèi)容管理系統(tǒng)觸發(fā),后臺(tái)自動(dòng)定時(shí)觸發(fā)。
靜態(tài)數(shù)據(jù)生成系統(tǒng)與業(yè)務(wù)組件的接口設(shè)計(jì)。通過(guò)反射的方式調(diào)用業(yè)務(wù)組件,接口的參數(shù)在指令結(jié)構(gòu)的基礎(chǔ)上擴(kuò)展即可。比如增加一些錯(cuò)誤描述,數(shù)據(jù)庫(kù)鏈接對(duì)象等。
數(shù)據(jù)分發(fā)是一個(gè)獨(dú)立的數(shù)據(jù)傳輸系統(tǒng),它負(fù)責(zé)根據(jù)預(yù)先設(shè)定好的配置,把生成的頁(yè)面數(shù)據(jù)傳輸?shù)街付ǖ膚eb服務(wù)器上。
為了使系統(tǒng)在隨著網(wǎng)站訪問(wèn)量的上升的同時(shí)做到水平擴(kuò)展,加快指令的處理速度。所以需要把系統(tǒng)部署到多臺(tái)服務(wù)器上,這樣以來(lái)各個(gè)子系統(tǒng)就要統(tǒng)一通信協(xié)調(diào)???以用MQ消息作為子系統(tǒng)之間的通信手段。子系統(tǒng)的部署模式變?yōu)镸aster-Slave的形式。Master主機(jī)上的系統(tǒng)負(fù)責(zé)讀指令,然后把指令發(fā)送到 MQ。各個(gè)Slave主機(jī)系統(tǒng)負(fù)責(zé)接收MQ消息指令,調(diào)用業(yè)務(wù)組件并更新某條指令的狀態(tài),這樣就把處理業(yè)務(wù)邏輯的壓力平均的分配到了各臺(tái)slave主機(jī)。
對(duì)于一個(gè)大型網(wǎng)站來(lái)說(shuō),生成的頁(yè)面數(shù)據(jù)會(huì)非常多,管理這些頁(yè)面文件又是一個(gè)問(wèn)題。例如有的頁(yè)面被刪除了,而已經(jīng)生成的頁(yè)面數(shù)據(jù)還會(huì)存在各個(gè)web服 務(wù)器上。這時(shí)就需要通過(guò)后臺(tái)系統(tǒng)記錄這些頁(yè)面文件的部署位置,以便今后統(tǒng)一管理。同時(shí)業(yè)務(wù)組件的量也可能會(huì)比較多,特別是存在多版本的情況下,所以也需要 把業(yè)務(wù)組件的配置情況記錄到數(shù)據(jù)庫(kù)中,便于統(tǒng)一管理。
本文來(lái)源于成都網(wǎng)站建設(shè)公司與成都網(wǎng)站設(shè)計(jì)制作公司-創(chuàng)新互聯(lián)成都公司!
網(wǎng)站欄目:網(wǎng)站頁(yè)面靜態(tài)化方案
網(wǎng)頁(yè)地址:http://redsoil1982.com.cn/news4/326404.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、做網(wǎng)站、軟件開發(fā)、標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、外貿(mào)建站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)