大數據解決方案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節點就是一個頁面緩存服務器。