巨量資料解決方案
使用快取: (推薦學習:PHP視訊教學)
使用方式:1,使用程式直接儲存到記憶體中。主要使用Map,尤其ConcurrentHashMap。
使用快取框架。常用的框架:Ehcache,Memcache,Redis等。
最關鍵的問題是:什麼時候建立快取,以及其失效機制。
對於空資料的緩衝:最好用一個特定的型別值來儲存,以區別空資料和未快取的兩種狀態。
分散式資料庫
將不同的表存放到不同的資料庫中,然後再放到不同的伺服器中。有些複雜問題,如:事務處理,多表查詢。
NoSql和Hadoop
NoSql,not only SQL。沒有關係型資料庫那麼多限制,比較靈活高效。
Hadoop,將一個表中的資料分層多塊,儲存到多個節點(分散式)。每一塊資料都有多個節點儲存(叢集)。叢集可以並行處理相同的資料,還可以保證資料的完整性。
高並行的解決方案
應用和靜態資源分離。
將靜態資源(js,css,圖片等)放到專門的伺服器中。
頁面快取
將應用生成的頁面快取起來可以節省大量cpu資源。
對於部分頁面經常變換資料的,可以使用ajax來處理。
叢集和分散式
叢集,多台伺服器具有相同的功能,主要起分流的作用。
分散式,將不同的業務放到不同的伺服器中,處理一個請求可能需要多台伺服器,進而提高一個請求的處理速度。
又分為靜態資源叢集和應用程式叢集。後者較複雜,經常要考慮session同步等問題。
反向代理
用戶端直接存取的伺服器並不是直接提供服務的伺服器,它從別的伺服器獲取資源,然後將結果返回給使用者。
CDN
CDN是一種特殊的叢集頁面緩衝伺服器,和普通的叢集的多台頁面緩衝伺服器相比主要區別是:其存放位置和分配請求方式不同。
CDN的伺服器分布在全國各地,接收到請求後會將請求分配到最合適的CDN伺服器節點來獲取資料。其每一個CDN節點就是一個頁面快取伺服器。
以上就是php如何處理巨量資料高並行的詳細內容,更多請關注TW511.COM其它相關文章!