大資料和高併發的解決方案彙總

2021-08-18 01:11:06 字數 1750 閱讀 5260

1.使用快取:

使用方式:1,使用程式直接儲存到記憶體中。主要使用map,尤其concurrenthashmap。

2,使用快取框架。常用的框架:ehcache,memcache,redis等。

最關鍵的問題是:什麼時候建立快取,以及其失效機制。

對於空資料的緩衝:最好用乙個特定的型別值來儲存,以區別空資料和未快取的兩種狀態。

2.資料庫優化:

1,表結構優化。

2,sql語句優化,語法優化和處理邏輯優化。可記錄各語句執行時間,有針對性的分析。

3,分割槽

4,分表

5,索引優化

6,使用儲存過程代替直接操作

3.分離活躍資料

例如使用者,可以分為活躍使用者和不活躍使用者。

4.批量讀取和延遲修改

高併發情況可以將多個查詢請求合併到乙個。

高併發且頻繁修改的可以暫存快取中。

5.讀寫分離

上圖,資料庫伺服器配置多個,配置主從資料庫。寫用主資料庫,讀用從資料庫。

6.分布式資料庫

將不同的表存放到不同的資料庫中,然後再放到不同的伺服器中。有些複雜問題,如:事務處理,多表查詢。

7.nosql和hadoop

nosql,not only sql。沒有關係型資料庫那麼多限制,比較靈活高效。

hadoop,將乙個表中的資料分層多塊,儲存到多個節點(分布式)。每一塊資料都有多個節點儲存(集群)。集群可以並行處理相同的資料,還可以保證資料的完整性。

1.4高併發的解決方案。

1.應用和靜態資源分離。

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

2.頁面快取

將應用生成的頁面快取起來可以節省大量cpu資源。

對於部分頁面經常變換資料的,可以使用ajax來處理。

3.集群和分布式

集群,多台伺服器具有相同的功能,主要起分流的作用。

分布式,將不同的業務放到不同的伺服器中,處理乙個請求可能需要多台伺服器,進而提高乙個請求的處理速度。

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

4.反向**

客戶端直接訪問的伺服器並不是直接提供服務的伺服器,它從別的伺服器獲取資源,然後將結果返回給使用者。

**伺服器和反向**伺服器:

**伺服器是代我們訪獲取資源,然後將結果返回。例如,訪問外網的**伺服器。反向**伺服器是我們正常訪問一台伺服器的時候,伺服器自己呼叫了別的伺服器。

**伺服器我們主動使用,是為我們服務的,不需要有自己的網域名稱;反向**是伺服器自己使用的,我們並不知道,有自己的網域名稱。

5,cdn

cdn是一種特殊的集群頁面緩衝伺服器,和普通的集群的多台頁面緩衝伺服器相比主要區別是:其存放位置和分配請求方式不同。

cdn的伺服器分布在全國各地,接收到請求後會將請求分配到最合適的cdn伺服器節點來獲取資料。其每乙個cdn節點就是乙個頁面快取伺服器。

分配方式:並不是普通的負載均衡,而是專門的cdn網域名稱解析伺服器在解析網域名稱的時候就分配好的,一般的做飯是:isp那裡使用cname將網域名稱解析到乙個特定的網域名稱,然後再將解析到的那個網域名稱用專門的cdn伺服器解析(返回給瀏覽器,再訪問)到相應的cdn節點。每個節點可能也集群了多台伺服器。

小結:**架構的整個演變主要圍繞大資料和高併發而展開。解決的方案主要是使用快取和多資源兩種型別。多資源:多儲存,多cpu,多網路。可以單個資源處理乙個請求,也可以多個。

使用複雜框架之前一定要將專案的業務優化好,基礎中的基礎,重中之重!

架構和協議並不是神聖不可侵犯的東西。

大資料和高併發的解決方案彙總

1.使用快取 使用方式 1,使用程式直接儲存到記憶體中。主要使用map,尤其concurrenthashmap。2,使用快取框架。常用的框架 ehcache,memcache,redis等。最關鍵的問題是 什麼時候建立快取,以及其失效機制。對於空資料的緩衝 最好用乙個特定的型別值來儲存,以區別空資料...

大資料和高併發的解決方案總結

軟體剛開始的時候是為了實現功能,隨著資訊量和使用者的增多,大資料 和高併發成了軟體設計必須考慮的問題,那麼大資料和高併發本質是什麼呢?本質很簡單,乙個是慢,乙個是等。兩者是相互關聯的,因為慢,所以要等,因為等,所以慢,解決了慢,也就解決了等,解決了等,也就解決了慢。關鍵是如何解決慢和等,核心乙個是短...

大資料和高併發的解決方案總結

現在,軟體架構變得越來越複雜了,好多技術層出不窮,令人眼花繚亂,解決這個問題呢,就是要把複雜問題簡單化,核心就是要把握本質。軟體剛開始的時候是為了實現功能,隨著資訊量和使用者的增多,大資料和高併發成了軟體設計必須考慮的問題,那麼大資料和高併發本質是什麼呢?本質很簡單,乙個是慢,乙個是等。兩者是相互關...