怎樣學習才能擁有所謂“高並發”的經驗?

來源:互聯網
上載者:User
請不要評頭論足, 給出實際的建議好嗎?

回複內容:

這個問題完全可以重新導向到如何處理高並發業務情境.
以下只是我工作一年多接觸到的一些基礎,也許有偏差,要具備高並發的經驗確實需要有實際項目,因為商務邏輯其實很容易理清,但是要在高並發的情況下如何找到業務繁忙的熱點並進行最佳化,完全只能憑經驗.

假如沒有靠譜的公司,接觸不到高並發的業務情境怎麼辦?
從處理技巧上,可以通過大牛學習高並發的架構,比如張宴:張宴的部落格 - Web系統架構與底層研發 .至少你可以知道處理高並發的商務邏輯是:
  • 前端:非同步請求+資源靜態化+cdn
  • 後端:請求隊列+輪詢分發+負載平衡+共用快取
  • 資料層:redis緩衝+資料分表+寫隊列
  • 儲存:raid陣列+熱備
  • 網路:dns輪詢+DDOS攻擊防護
對於高並發並沒有什麼通用解決方案,必鬚根據業務情境進行分析,不同的業務情境對於架構的取捨是不一樣的.但萬變不離其宗,掌握這些處理高並發的分析方法還是很有必要的.

如何學習高並發的工具?
處理高並發的開源輪子其實很多.很多高並發的架構分享都會提及使用的工具,自己多留心,再看看手冊,有條件自己搭起來跑一跑.
redis,nginx/Tengine,keeplive,DRBD,heartbeat這些小工具還是可以在虛擬機器上面多開幾台跑起來的.至於大業務情境,除了進大公司沒有別的辦法,因為有些工具啟動並執行配置要求太高,必須多台伺服器配合才能完成.

如何類比高並發情境?
並不是只有實際生產環境才能測試高並發,其實類比高並發的輪子也很多,最常用的apache benchmark,winrunner,loadrunner,這些教程很多,用來類比基本的高並發業務綽綽有餘,自己安裝試用版,學學如何用,類比些常用的業務.
如果有精力,業內很喜歡用perl,python,C來寫一些針對熱點業務的負載指令碼.這需要有http協議等網路封包的理論基礎.

一些建議
處理高並發要學習的東西實在太多.要在沒有實際工作經驗的情況下逐一瞭解太難,也很難深入.對於高並發的學習,我建議除了多閱讀高並發架構的文檔學習基本的方法論以外,自己要去深入學習網路基礎,資料結構和演算法.這些都是處理高並發熱點的理論基礎.學曆的重要性就體現出來了,
PHP的重頭是解決實際問題,
但是如果你進不了靠譜的公司,你永遠解決的是小問題,工作10年技術也未必提升多少。沒有實戰環境,只能空談理論、應付面試。
接觸不到實際項目和環境,你永遠沒有這方面的"經驗"。沒有經驗就沒有靠譜的公司收,沒有靠譜的公司也就沒有經驗,我看了無數的書,自己做了無數的實驗拚命想找個靠譜公司去深入,但是感覺好難,簡直是個死迴圈
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.