天天看點

高并發-----高并發和大資料的處理

随着網絡的普遍,我們的生活慢慢被資訊所包圍。我們做web開發的,遇到高并發和大資料的情況很正常,那麼我們需要怎麼做才能解決這些問題?

高并發的解決方案

說到高并發,我們遇到的高并發是如何産生的呢?大家有想過麼?并發并發,無外乎是同時通路我們的伺服器,伺服器處理能力達到上限,整個程式處于高負荷甚至當機狀态,高并發的同時資料庫的查詢或者資料的存儲也相應變多。是以高并發的處理需要處理兩個核心點,一個是web伺服器問題,另一個就是我們的大資料問題。

第一種:使用叢集和分布式

增加web伺服器數量,做web伺服器叢集,通過負載均衡算法,将請求分發給壓力小的伺服器,使得請求在最短時間内得到響應,避免影響使用者體驗,叢集分布式是大多數公司都使用的常用方式。

叢集:在多台伺服器叢集的前提下,每台伺服器的功能是一樣的,無論通路哪台伺服器都是一樣的,主要起到分流的作用。

分布式:将不同的業務分給不同的伺服器做,處理一個請求可能用到好幾個伺服器,使請求得到快速響應,分布式和叢集可以用時使用。

第二種:頁面靜态化

在我們的web裡面并不是所有的資料都是時刻變化,有些頁面變動很小,我們就可以讓這部分的頁面存入緩存中,頻率變化高的,我們可以使用ajax來實作資料的更新,這樣我們就避免了大量使用者對資料庫的請求。

第三種:應用和靜态資源的分離

這個時候,我們将我們的靜态資源(js,html,css等等)放在單獨資源伺服器上,這樣就可以減輕我們應用伺服器的壓力。

第四種:通過反向代理将别的伺服器資源展示給使用者

反向代理伺服器是我們正常通路a網站的時候,将b網站的資訊發給我們。這樣極大的減輕了我們伺服器的壓力。用戶端直接通路的伺服器并不真正提供服務,它從别的伺服器擷取資源然後将結果傳回給使用者

大資料的處理方案:

1, 使用緩存

我們可以将資料放在記憶體裡面,避免每次通路資料庫,對資料造成壓力。同時使用緩存還能提高查詢效率和縮短查詢時間。

2,sql語句優化

sql語句的優化很重要,我們需要什麼資料就查詢什麼資料,避免造成不必要的性能浪費。sql語句優化詳情,在我的mysql資料庫(三)------mysql優化方案,有想法的可以看看。

3,資料庫叢集和庫表散列

注:上述方案隻是部分解決辦法,更多的方法大家有興趣可以自行百度。

繼續閱讀