首頁  >  文章  >  後端開發  >  php如何處理大數據高並發

php如何處理大數據高並發

(*-*)浩
(*-*)浩原創
2019-11-12 17:36:303584瀏覽

php如何處理大數據高並發

大數據解決方案

使用快取:          (建議學習: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如何處理大數據高並發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn