Web2.0負載均衡的解決方案
說起Web,分為2.0和1.0這是眾所周知的。從后臺搬到前臺,從程序員到用戶。平臺的擴展,帶來的信息交換也是我們需要改進的地方。在Web2.0中,以種類繁多的應用為代表,為負載均衡技術提出了更高的要求。那么在實際應用案例中我們將怎么解決服務器的壓力的呢?
讓我們先看看Web2.0和Web1.0在哪些方面有重大區別。現在各種各樣的網站,包括博客、論壇、門戶網站、社區網站、視頻網站等等,都可以在里面找到WEB2.0的影子。在WEB2.0的網站中,有以下幾個特點和負載均衡有關:
***、Web2.0網站的內容變成海量的內容。以前一個網站可能就是幾百個G就算多的了,但是現在不一樣,現在一個使用WEB2.0技術的網站,內容可能就變成一個幾個T、幾十個T甚至更多。這是WEB2.0的一個普遍特點,就是內容變成海量了。
第二、Web2.0網站的用戶訪問、交互性更強。Web1.0網站訪問時,也有一定的交互,比如輸入域名按回車,那時候有一些交互,內容拿下來就是存在本地頁面的內容,在點擊刷新或變更地址后才向后臺請求新的內容出來。 WEB2.0不一樣,不斷有一些交互性的內容,特別是動態變化內容,比如你看到一個股市變化行情的頁面的時候,發現老是在變,行情老是在變,圖線經常會變化,隨著實時的行情,這就是利用了WEB2.0很多技術在里面,而這種應用的特點,帶來的就是給后臺服務器的壓力就變大了。
第三、WEB2.0網站是以用戶為中心,個性化的服務。像博客、播客,是我們自己每個人提供內容,讓所有人來看,就變得整個WEB網站服務特點,由一種原來簡單集中提供內容,大家瀏覽的模式,變成我們每個人都可以提供東西,每個人在找我們個性的東西,然后每個人通過尋找個性東西,尋找自己需要的信息。
由于以上特點,很可能會因為Web服務器的性能和相關應用系統的性能,成為外部終端用戶訪問的瓶頸,所帶來的是網絡訪問的響應延遲,甚至是鏈接中斷。這將大大影響作為網絡信息提供者在網絡用戶中的形象,從而影響到企業關鍵業務的開展,這將是企業所不希望發生的。
針對以上特點,目前很多Web2.0網站采取利用Cache技術實現負載均衡來減輕 Web服務器的壓力。也就是在Web服務器的前面擺上一堆SQUID CACHE,SQUID CACHE重復內容會緩沖在CACHE里面,所以下一次有人同樣訪問同一個內容,就會由CACHE來反映,服務器壓力就變輕了,以前訪問搜狐,搜狐上面有圖片廣告,***個人訪問之后,會存在CACHE,第二個人訪問的時候,就會從CACHE把這個廣告傳給了第二個人,CACHE能夠很好降低系統壓力的手段。
但是,這里面有一個很重要問題,就是Web2.0網站內容可能是由幾百個G變成T,甚至上百個T內容,而根據CACHE的工作原理,***導致CACHE服務器里面的內容會趨于一致!比如有10臺CACHE服務器,每個都是100G的存儲空間,從系統設計容量來看,可以認為,整個容量應該是 1000G(10x100G)。但是CACHE的工作原理是只要訪問的東西,就會都存下來。從長期積累來看,***造成這10臺CACHE服務器存儲的內容都變成一樣的內容,同樣的圖片在10臺上都有。在這種情況下,可以想像一下,隨著時間的積累,***整個網站的CACHE服務器的容量,就不是10臺乘 100G,而是還是100G,因為內容都一樣,實際上緩存內容的總量就是100G。
所以,這種負載均衡方式只是推遲了產生負載壓力的時間,沒有從根本上解決問題,經過一段時間后,99%的請求還是會回到Web服務器上來的。并且會浪費大量的投資。
那么問題找到了,如何解決這個問題呢?
我們在研究市場上現有產品的時候,(Barracuda Networks)梭子魚公司的負載均衡的解決方案可以很好的來幫助用戶解決難題。簡單來說就是利用一種負載均衡算法,根據用戶訪問的URL的不同,可以把請求發送到不同的Cache服務器上,同一個請求精確保證發送到同一個Cache服務器上。這樣,按照前面的案例,***整個系統設計容量基本上就是 1000G了。也就真正使每臺服務器投資發揮了效果,企業在CASH上的投資真正發揮了效率。
這種解決方案的另外一個好處就是:由于CASH的設計容量,比原來提高了,所以就減少了很多回服務器的請求,進而降低的服務器的負載,用戶的響應速度就會變快,用戶體驗滿意度也會隨之增加,不會影響到企業關鍵業務的開展,徹底解決Cache方案帶來的問題。