高併發學習技術學習
m
一、網路架構的優化
傳統網路結構的使用者的請求流程(dns解析流程):
1、使用者在瀏覽器輸入要訪問的**的網域名稱,如果作業系統檢查到本地hosts檔案中快取著這個網域名稱的對映關係,則直接呼叫,完成網域名稱解析。
2、如果hosts檔案中沒有,則瀏覽器向本地dns請求解析,如果快取著對映關係,則返回結果,完成解析;
3、如果本地dns沒有,則將請求發往rootdns(根dns伺服器)判斷網域名稱**授權的dns伺服器;
4、**授權dns伺服器將解析得到的ip位址發回本地dns,本地dns快取對映關係並將ip位址發回給使用者;
5、使用者在得到ip位址後,向其發出http請求。
比較現實的解決辦法是使用cdn(內容分發網路)。
1、cdn=更智慧型的映象+快取+流量導流
cdn加速=智慧型dns+多伺服器
如上面公式,cdn是多台伺服器加智慧型dns的結合體。
2、cdn服務,其實就是把頁面靜態內容或靜態化的動態內容快取到不同地區很多臺專門的快取伺服器上(如快取伺服器,靜態html快取伺服器、檔案快取伺服器等),
然後根據使用者線路所在的地區通過***服務商的智慧型dns自動選擇乙個最近的快取伺服器讓使用者訪問,如果靜態快取伺服器中沒有請求的內容,才向動態伺服器發出請求,以此提高速度,這種方案對頁面靜態內容效果非常好,所以web設計中頁面靜態化是很有必要的。
3、cdn與dns的關係:cdn服務需要智慧型dns的幫助才能實現把使用者引導到離自己最近的快取伺服器上。好的***服務提供商必須有好的智慧型dns做基礎。
4、cdn優點:本地cache加速,映象加速,遠端加速,頻寬優化,集群抗攻擊。
二、http傳輸優化
因為客戶端與伺服器之間通訊是通過http實現的,所以如果能加快http傳輸效率,對解決高併發也有很大益處。
1、tcp連線復用、tccp1.1特性長連線,減少過多次tcp連線的時間消耗。
2、http壓縮,如apache的mod_deflate與gzip壓縮。
三、動態伺服器層的優化
四、資料庫的優化
1、根據業務選擇合適的的資料庫。
2、採用資料庫快取技術,如memcache、redis等。可通過動態伺服器層的程式來控制資料庫快取的分布式訪問。
3、採用mysql主從結構。
4、如果業務量更加巨大時,可以對資料庫進行拆表,拆庫,實現資料庫級別的負載均衡。
注:資料庫層可能涉及到大量的i/o操作,這對效能是有很大影響的。如索引存在外存中,mysql使用b+樹結構來儘量減少i/o操作的次數。
高併發學習技術學習
m
一些高併發的處理方案可以參看另一篇部落格
大中型Web站點解決高併發訪問的優化方案
一 網路架構的優化 傳統網路結構的使用者的請求流程 dns解析流程 1 使用者在瀏覽器輸入要訪問的 的網域名稱,如果作業系統檢查到本地hosts檔案中快取著這個網域名稱的對映關係,則直接呼叫,完成網域名稱解析。2 如果hosts檔案中沒有,則瀏覽器向本地dns請求解析,如果快取著對映關係,則返回結果...
僅大中型上市銀行
央行發布的 2014年一季度支付體系執行總體情況 指出,第一季度,移動支付業務6.59億筆,金額3.89萬億元,同比分別增長232.20 和255.37 易觀智庫測算發布的資料顯示,2014年一季度,我國手機銀行交易金額達到55444.3億元,環比增長達到 23.05 愛加密安全專家提醒,由於安卓系...
大中型積分類設計構建
最近在做乙個積分類應用,大致設想了下構架。先上圖 主要需要考慮的點 1 效能 積分類應用 查詢頻繁,寫操作一般,所以在設計上查詢時需要乙個記憶體cache,在db設計上 一般會採用使用者id hash 分表,分的表越多後續的統計越麻煩,因此在不影影響效能的情況下 設計乙個 非同步入庫的機制,按照積分...