1. 程式人生 > >提高高併發訪問的響應速度的幾種方式

提高高併發訪問的響應速度的幾種方式

    1:首先需要有非常良好的網路頻寬,若有上萬人同時錄入資料的普通的Web資訊管理系統,至少需要10M左右的網路頻寬,而且網通、電信的主幹網都有接入比較好,否則全國各地的網路情況都不太一樣,有的城市錄入資料時可能會遇到網路非常緩慢的情況,甚至到無法忍受的程度。

    2:須有一臺牛X的Web伺服器 + 一臺牛X的資料庫伺服器(備註接近頂配的奢侈硬體伺服器非個人PC),由於是需要錄入1000萬條以上資料,最好採用Oracle資料庫比較理想一些,經得起考驗一些。

    3:需要進行適當的記憶體快取優化策略,不能所有的資料庫都依靠SQL資料庫的方式把壓力放在資料庫伺服器上,儘量多使用記憶體的方式處理資料。

    4:需要一個牛X的,經得起考驗的資料庫訪問層,因為每秒都有可能成千上萬的人在訪問,若是質量不良好的資料庫訪問元件、或者不穩定的資料庫訪問元件,更容易導致系統崩潰、或者佔用非常龐大的記憶體,最後容易導致整個系統的崩潰。

    5:需要優化分頁存取資料功能,應為有可能會有1000萬條資料,若分頁讀取資料的功能沒能優化到最高,也很容易導致系統的崩潰,因為上萬人萬一在同一時間,或者接近同一時間點了查詢某頁資料時,那系統就真崩潰了,分頁存取資料一定需要做到極致才可以。

    6:需要進行資料庫索引優化,有索引和沒索引的效能差距有時候會是100倍,大資料量時可能會有1000倍都有可能,資料庫索引優化到極致了更容易得到執行順暢的資訊管理系統。

    7:嚴謹高效的資料庫事務處理,由於高併發,並且有些單據是需要同時寫入多個表,需要保證資料庫的一致性,要麼全部成功,要麼全部失敗重新錄入資料,所以需要一個高效的資料庫事務處理機制的配合。

    8:所有的系統的操作日誌、異常資訊都需要完整的記錄下來,當系統發生一些故障時,可以快速排查問題,對正確診斷系統發生的故障的原因做分析參考用。

    9:需要經常檢測系統的各項指標、例如各伺服器的記憶體使用情況、CPU使用情況、網路頻寬使用情況,高峰時的各個引數是什麼情況、系統不繁忙時的情況等,若伺服器快承受不了壓力了,就得馬上增加負載均衡的伺服器,網路頻寬不夠了需要增加等等,總不能等系統崩潰了再去做這些事情。

  10:每個頁面的HTML、JS都進行優化,若某個頁面多餘發了100個字元的垃圾HTML程式碼,那1萬人每天獲得100次,那得佔用多少網路頻寬,100×100×1萬個字元的多餘HTML被網路上傳輸了,要知道接入主幹網的網路資源是多麼寶貴,費用是多麼昂貴。

  11:HTML、JS等都可以考慮用壓縮模式傳輸,那樣網路傳輸效率會更高一些。

  12:由於全國各地上萬人,會有各種各樣的人,這些人也未必全是好人,可能某些人心情不好,或者其他什麼的,可能就會攻擊我們的軟體系統破壞資料,這些也可能是由於好奇心導致的,所以系統需要有嚴格的許可權管理控制,不應該進入的頁面絕對不能進入,不應該看的資料絕對不讓看,不能操作的功能絕對不讓多操作,一方面防止沒必要的多餘的麻煩,另一方面也可以減少系統被攻擊破壞的可能性。