我目前最處理過最高併發量就是之前參與李寧的電商專案,其實全天也就是剛到百萬級的pv,大概每秒響100pv。
個人認為高併發系統的本質就是充分利用硬體資源,並通過提高**和架構的質量進行輔助,以此提公升cpu、io裝置的使用率;所以高併發的處理無非三點:伺服器、資料庫、**架構。
伺服器方面可以提高頻寬、伺服器效能、伺服器連線數等等,在伺服器效能有了保障後,你可以做一些橫向擴充套件,比如使用一些三方伺服器(如:阿里雲的oss)去進行分離儲存資訊,這樣的話你的資料獲取就不需要經過自己伺服器,節約了儲存空間,還能減少伺服器壓力;再比如使用cdn解決internet網路擁擠的狀況,提高使用者訪問**的響應速度和成功率。同時伺服器連線數關係到了併發,如果你的系統為秒殺而生,這個數值你需要酌情考慮進行設定。最後架構方面還是當下主流的分布式服務加以集群的組合,並做好負載均衡的處理。
然後是資料庫,主要涉及資料庫連線數,資料結構,索引,鎖,儲存過程等等。除去sql語句的優化,千萬要記得優化資料架構,好的資料結構,不僅僅可以滿足儲存資料,還具有很高的擴充套件性。索引大大加快資料的檢索速度,但是索引需要佔物理空間,也要動態的維護,所以亂加索引會有適得其反的效果。當然儲存過程也是複雜資料庫處理的乙個好辦法。同時也可從快取方面進行考慮,比如cache、redis等,不但減少資料庫的互動,而且速度也是相當的快。如果還是滿足不了現狀,還可以可慮進行讀寫分離、或者分庫分表等操作來降低資料庫的壓力。
**方面,前端能使用靜態頁面的地方盡量使用,減少容器的解析(盡量將動態內容生成靜態html來顯示,比如使用freemaker模板,還有nginx來處理靜態檔案,當然nginx處理載均衡、限流、快取等也是有一手的)。後端的話,除去反覆的進行壓測,儘量減少jvm的壓力,其次還有io、多執行緒、協程的優化。訊息佇列等開源元件也可以幫助進行削峰和解耦的操作。演算法不常遇到則先不考慮。
以上我們可以解決很多高併發的問題,當然不是全部啦,希望大家多多更正。
外企面試時,被問到的常見問題
外企面試時,被問到的常見問題 1 請介紹一下你自己。這是外企常問的問題。一般人回答這個問題過於平常,只說姓名 年齡 愛好 工作經驗,這些在簡歷上都有,其實,外企最希望知道的是求職者能否勝任工作,包括 最強的技能 最深入研究的知識領域 個性中最積極的部分 做過的最成功的事,主要的成就等,這些都可以和學...
面試時被問到倒排索引是什麼該如何快速明了的回答
首先先明確幾個關於搜尋引擎中的概念 索引庫 index 若干個文件的合集.詞條 原始文件資料按照一定的演算法進行分詞,得到的每乙個詞.例如 我是中國人.其中就有中國,中國人等等.未來可以通過這些分詞後的詞條,來索引到文件.所以可以這麼回答面試官 所謂的倒排索引,就是將原始的文件進行編號,建立文件索引...
面試被問到webpack配置
當時太悲劇了,這一塊太久沒注意,一直都是做專案寫業務頁面比較多,竟然忘記了,還亂答一通,還說要配置vue loader 引入path 引入需要應用的函式,時候真想ps自己。webpack配置 在pakage.json裡配置執行命令,然 口和出口是基本的。答出以上三點基本得分 首先,安裝webpack...