網站用戶訪問量增加,怎樣有效增加服務器承載能力?

當網站已經有不少用戶了之後,隨著企業業務的不斷深入,網站的用戶也會不斷增加,那麼服務器需要同事承載的用戶數也在不斷的增加,服務器的配置是既定的,如何才能增加服務器承載能力呢?縱橫數據分享:


網站用戶訪問量增加,怎樣有效增加服務器承載能力?


一、負載均衡


對於用戶數較多、負載較大的網站,通常都會使用負載均衡(LB:LoadBalance)來增加服務器的承載能力。負載均衡有很多種不同的實現方式,從實現方式看,可以分為硬件負載均衡與軟件負載均衡兩大類。


硬件負載均衡有大名鼎鼎的F5之類,這種不差錢的企業會採用。但是現在互聯網公司用的越來越少。現在硬件使用較多的是使用支持OSPF協議的交換機(基本都支持了),通過ECMP做的負載均衡集群。但硬件負載均衡解決方案也有缺點,比如設備和服務費用昂貴,靈活性差,功能和容量都難以擴展。


軟件負載均衡相對來說,靈活性強,擴展起來更容易,所以軟件負載均衡解決方案越來越受到青睞。


負載均衡到底是怎麼回事可以看看下面這個例子:


例如:


想象下有一萬個用戶在一分鐘內來訪問你的服務器。


遺憾的是,你的服務器在一分鐘內只能保證5千個用戶的流暢訪問。這怎麼辦呢?同時運行兩個服務器就行了,就是增加了服務器來分配負載。


負載均衡器的功能就是把訪問請求分發到兩臺服務器上。用戶1往左,用戶2往右,用戶3再往左。。。以此類推。


如果一次有100萬個用戶同時訪問服務器,這該怎麼解決呢?確切地說,你可以擴展到200臺付款服務器,之後讓負載均衡器分發請求到這200服務器上。


二、緩存和內容分發網絡(CDN)


我們使用緩存而不是對每個請求都重新處理,緩存用於記住最後一次的結果並交由其他服務或者客戶端,這樣就不用每次都請求後端服務了。


簡單的說,CDN的工作原理就是將您源站的資源緩存到位於全球各地的CDN節點上,用戶請求資源時,就近返回節點上緩存的資源,而不需要每個用戶的請求都回您的源站獲取,避免網絡擁塞、緩解源站壓力,保證用戶訪問資源的速度和體驗


三、分片處理


分片究竟是什麼意思呢?其實也很簡單:Facebook上需要為20億用戶提供個人資料,可以把你的應用架構分解為26個mini-Facebook。


用戶名如果以A開頭,會被mini-facebookA服務器處理,用戶名如果以B開頭,會被mini-facebookB服務器來處理……


分片不一定按字母順序,根據業務需要,你可以基於任何數量的因素,比如位置、使用頻率(特權用戶被路由到好的硬件)等等。你可以根據需要以這種方式切分服務器、數據庫或其他方面。


分享到:


相關文章: