淺談WEB中的高並發

來源:互聯網
上載者:User

標籤:最新   mys   表結構   過程   取資料   ora   配置   分布   進程   

  今天主要是對JAVA_WEB中高並發的概念及常見的處理手段做個基本介紹,後面會每個點都做詳細的介紹及實現。

  何謂高並發

  高並髮指的是:在同時或極短時間內,有大量的請求到達服務端,每個請求都需要服務端耗費資源進行處理,並做出相應的反饋。

  從服務端視角看高並發服務端處理請求需要耗費服務端的資源,比如能同時開啟的進程數、能同時啟動並執行線程數、網路連接數、

  cpu、I/O、記憶體等等,由於服務端資源是有限的,那麼服務端能同時處理的請求也是有限的;

  高並發問題的本質就是:資源的有限性

  高並髮帶來的問題  

  服務端的處理和響應會越來越慢,甚至會丟棄部分請求不予處理,更嚴重的會導致服務端崩潰。高並發問題並不是互連網應用專屬。

  高並發問題的層面比如:前端請求、Web伺服器、Web應用、資料庫等。

  高並發處理的基本思路

  一:從用戶端看
    1:盡量減少請求數量,比如:依靠用戶端自身的緩衝或處理能力
    2:盡量減少對服務端資源的不必要耗費,比如:重複使用某些資源,如串連池
  用戶端處理的基本原則就是:能不訪問服務端就不要訪問

  二:從服務端看
  1:增加資源供給,比如:
    (1)更大的網路頻寬;
    (2)使用更高配置的伺服器;
    (3)使用高效能的Web伺服器;
    (4)使用高效能的資料庫;

  2:請求分流,比如:
    (1)使用叢集;
    (2)分布式的系統架構;

  3:應用最佳化,比如:
    (1)使用更高效的程式設計語言
    (2)最佳化處理商務邏輯的演算法
    (3)最佳化訪問資料庫的SQL
  服務端的處理基本原則是:分而治之,並提高單個請求的處理速度。

  高並發處理的基本手段

  用戶端發出請求層面,常見的手段有:
  1:盡量利用瀏覽器的緩衝功能,減少訪問服務端,比如:js、css、圖片等;
  2:可以考慮使用壓縮傳輸的功能,減少網路流量,也會提高傳輸速度;
  3:考慮使用非同步請求,分批擷取資料;

  前端接收用戶端請求層面,常見的手段有:

  1:動靜分離,部分靜態資源可以直接從Nginx返回;
  2:按請求的不同,分發到不同的後端進行處理,比如:負載平衡、業務拆分訪問等;
  3:前面再加上一層來做多個Nginx的負載平衡,比如:LVS、F5等;
  4:還可以在更前面使用CDN服務;

  5:還可以對動態內容進行緩衝,盡量減少訪問後端服務;
  6:使用頁面片斷緩衝技術,比如ESI(Edge Side Includes );

  Web伺服器層面,常見的手段有:
  1:使用最新的JVM,並進行配置最佳化;
  2:合理選擇伺服器的運行模式,比如有些伺服器有Client和Server之分;
  3:對Web伺服器進行配置最佳化,比如:調整記憶體數量、線程數量等;
  4:提供多個能提供相同服務的Web伺服器,以實現負載平衡;
  5:仔細規劃Web伺服器上部署的應用規模;
  6:對Web伺服器進行叢集;
  7:提供專門的圖片、檔案、視頻等靜態資源伺服器; 

  Web應用程式層面,常見的手段有:
  1:動態內容靜態化;
  2:Java開發最佳化;
  3:最佳化處理商務邏輯的演算法;
  4:合理高效的利用緩衝;
  5:最佳化訪問資料庫的Sql,可以考慮利用預存程序等資料庫的能力;
  6:合理使用多線程,加快業務處理;
  7:部分業務可以考慮記憶體資料庫,或者是進行純記憶體處理;
  8:盡量避免遠程調用、大量I/O等耗時的操作;
  9:合理規劃事務等較為耗資源的操作;
  10:合理使用非同步處理;
  11:對部分業務考慮採用預先處理或者預計算的方式,減少即時計算量;
  12:內部系統間的業務盡量直接調用、直接處理,減少WebService、工作流程等;

  資料庫層面,常見的手段有:
  1:合理選擇資料庫的引擎,比如Mysql的InnoDB與MyISAM引擎;
  2:進行配置最佳化;
  3:可以考慮使用預存程序來處理複雜的資料邏輯;
  4:資料庫叢集,進行讀寫分離;
  5:合理設計資料庫的表結構、索引等;
  6:分庫、分表,降低單庫、單表的資料量;
  7:合理使用NoSql;

 

 

淺談WEB中的高並發

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.