php如何處理巨量資料高並行

2020-07-16 10:06:07

巨量資料解決方案

使用快取: (推薦學習: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其它相關文章!