php如何處理大數據高併發

大數據解決方案css

使用緩存: ajax

使用方式:1,使用程序直接保存到內存中。主要使用Map,尤爲ConcurrentHashMap。數據庫

使用緩存框架。經常使用的框架:Ehcache,Memcache,Redis等。緩存

最關鍵的問題是:何時建立緩存,以及其失效機制。服務器

對於空數據的緩衝:最好用一個特定的類型值來保存,以區別空數據和未緩存的兩種狀態。session

分佈式數據庫併發

將不一樣的表存放到不一樣的數據庫中,而後再放到不一樣的服務器中。有些複雜問題,如:事務處理,多表查詢。框架

NoSql和Hadoop分佈式

NoSql,not only SQL。沒有關係型數據庫那麼多限制,比較靈活高效。高併發

Hadoop,將一個表中的數據分層多塊,保存到多個節點(分佈式)。每一塊數據都有多個節點保存(集羣)。集羣能夠並行處理相同的數據,還能夠保證數據的完整性。

高併發的解決方案

應用和靜態資源分離。

將靜態資源(js,css,圖片等)放到專門的服務器中。

頁面緩存

將應用生成的頁面緩存起來能夠節省大量cpu資源。

對於部分頁面常常變換數據的,能夠使用ajax來處理。

集羣和分佈式

集羣,多臺服務器具備相同的功能,主要起分流的做用。

分佈式,將不一樣的業務放到不一樣的服務器中,處理一個請求可能須要多臺服務器,進而提升一個請求的處理速度。

又分爲靜態資源集羣和應用程序集羣。後者較複雜,常常要考慮session同步等問題。

反向代理

客戶端直接訪問的服務器並非直接提供服務的服務器,它從別的服務器獲取資源,而後將結果返回給用戶。

CDN

CDN是一種特殊的集羣頁面緩衝服務器,和普通的集羣的多臺頁面緩衝服務器相比主要區別是:其存放位置和分配請求方式不一樣。

CDN的服務器分佈在全國各地,接收到請求後會將請求分配到最合適的CDN服務器節點來獲取數據。其每個CDN節點就是一個頁面緩存服務器。

相關文章
相關標籤/搜索