解決企業搞並發的痛點,難在哪裡。有套路嗎。
我想隨便講講大資料高並發貌似很高大上的內容是否有套路
瞅一眼大資料高並發架構
所謂高並發,出現的問題。無非於資料量大、訪問突增、流量大、響應慢等。
看過很多解決的所謂高大上的方案。總歸介於怎麼做負載平衡、容災、緩衝、分布式等。從物理架構上來說,怎麼做好負載、叢集、轉寄或者就近代理。從軟體的角度也無非怎麼做緩衝、動靜分離、讀寫分離等。
負載平衡技術
負載平衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充網路裝置和伺服器的頻寬、增加輸送量、加強網路資料處理能力、提高網路的靈活性和可用性。
常用的負載平衡技術包括:LVS、Apache、DNS等
動靜分離技術
將靜態內容(如:圖片、css、js等)與動態內容分離,長用到的技術nginx。
緩衝技術
常見得將資料載入到記憶體。Memcached、Mongodb、Redis
資料庫叢集技術
目前常見的使用mysql作為來源資料庫
分布式儲存技術或者分散式運算技術
目前比較流行的hadoop、spark
下圖簡單的展示一個高並發架構圖
1、 對lvs做容錯。
2、 Lvs將請求轉寄到不痛叢集環境
3、 Webapps資料讀寫
4、 資料回寫轉寄。
高並發解決方案
一般的的解決方案有兩種
1、 系統或者伺服器的解決方案
增大伺服器的CPU。
增加記憶體條。
增加硬碟個數,對硬碟做Raid5。
換掉免費的Tomcat,使用商用weblogic
增加到二塊網卡。
花高價直接購買高效能伺服器
當業務或者使用者不斷增大的時候效能又會出現瓶頸
2、 系統應用解決方案
網頁HTML 靜態化(需要CMS項目支援)
圖片伺服器分離(常用解決方案)
緩衝(常用解決方案)分布式緩衝
這個同樣會出現上述問題
3、 橫向拓展伺服器解決
拓展橫嚮應用伺服器
1、 解決ip
當使用者過大的時候採用DNS解決ip問題
迴圈複用 DNS將傳入的 IP 請求映射到定義的一系列迴圈形式的伺服器。一旦發生伺服器故障,迴圈複用 DNS 繼續把請求發送到這個故障伺服器,一直到把該伺服器從 DNS 中移走為止。這樣許多使用者必須等到 DNS 連線逾時以後才能成功地訪問目標網站
然後出現了負載平衡解決方案
使用負載平衡做地址轉寄
1:轉寄請求
2:故障移除
3:恢複添加
硬體上的負載平衡
NetScaler、F5、Radware和Array等商用的負載平衡器。土豪任性
軟體上的負載平衡
LVS、Nginx、apache等