亚洲全黄无码一级在线看_国产剧情久久久性色_无码av一区二区三区无码_亚洲成a×人片在线观看

當(dāng)前位置: 首頁 > 科技新聞 >

程序員經(jīng)典面試題,高并發(fā)系統(tǒng),一般需要怎么

時(shí)間:2019-11-13 00:45來源:網(wǎng)絡(luò)整理 瀏覽:
高并發(fā)系統(tǒng)總是那么令人著迷,比如說雙十一的搶購,比如說12306的搶票,都是非常經(jīng)典的高并發(fā)的例子,也是非常大的挑戰(zhàn)。對于開發(fā)這樣系統(tǒng)的人來

高并發(fā)系統(tǒng)總是那么令人著迷,比如說雙十一的搶購,比如說12306的搶票,都是非常經(jīng)典的高并發(fā)的例子,也是非常大的挑戰(zhàn)。對于開發(fā)這樣系統(tǒng)的人來說,最怕的就是突發(fā)的流量,就好比河流突發(fā)大水而引發(fā)洪澇災(zāi)害一樣,突發(fā)的流量也會引起服務(wù)器奔潰。

程序員經(jīng)典面試題,高并發(fā)系統(tǒng),一般需要怎么做

為了應(yīng)對這些突發(fā)的流量,我們總需要做點(diǎn)什么?今天我們來介紹一下高并發(fā)的幾個套路。

分布式

提升并發(fā)的好的辦法,便是提升硬件。舉個大家都熟悉的例子,十年前的諾基亞手機(jī),一般我們只能簡單的掛一個QQ后臺,多干幾個事情,就不行了。五年前,我們用的安卓手機(jī)能開十來個任務(wù),切換也比較流暢了,而今天,剛剛發(fā)布的蘋果iPhone11,性能就更加強(qiáng)勁。但是我們也發(fā)現(xiàn),這兩年,好像手機(jī)的性能沒有飛速發(fā)展了。無論是蘋果、高通還是華為,或者是PC芯片的廠商因特爾或者AMD,都開始慢慢在擠牙膏了。

這其實(shí)是受到物理定理的制約,晶體管不可能無限小,無限集成,硬件不可能一直保持突飛猛進(jìn)。并且,越是高端的機(jī)器,成本越貴,并且這個價(jià)格很可能是指數(shù)級增長的。谷歌公司在很早之前就發(fā)現(xiàn),于是開始組建分布式系統(tǒng),使用一個集群而不是一臺機(jī)器來完成相關(guān)的工作,憑借這一點(diǎn),谷歌在互聯(lián)網(wǎng)早期迅速發(fā)展。

緩存

緩存,是解決高并發(fā)問題的另一個有效手段。因?yàn)榇疟P的讀寫速度較慢,所以我們常常用讀寫速度的更高的內(nèi)存來防止流量到達(dá)磁盤。

一般我們會把一些靜態(tài)資源都放在緩存上,或者將一些動態(tài)的又不怎么重要的更新頻率可以接受延遲的放在緩存里。舉個例子,音樂服務(wù)器,我們可以把專輯的圖片、音樂文件這些放在CDN等緩存服務(wù)上,對于一些熱門的評論列表,我們也可以進(jìn)行緩存,一定時(shí)間才刷新一次,可以大大減少磁盤的壓力。當(dāng)然,有時(shí)候有緩存還遠(yuǎn)遠(yuǎn)不夠,例如前幾天周杰倫的新專輯照樣打垮了QQ音樂的服務(wù)器。

異步

即便是有緩存,有些請求仍然沒有辦法快速的相應(yīng)。

有些請求是寫請求,舉個例子,沙茶敏寫了一份電子郵件,群發(fā)了1萬個人,群發(fā)的人數(shù)非常多,服務(wù)器要往很多人的信箱投遞消息,假設(shè)一個人需要0.1秒,1萬個人也要1000秒。雖然可以并發(fā)到多臺機(jī)器解決,但是非常浪費(fèi)資源,如果很多人這么做,系統(tǒng)壓力非常大。

另外的情況,是有可能某個系統(tǒng)處理非常慢,這個系統(tǒng)既有可能是業(yè)務(wù)非常復(fù)雜,也有可能是第三方系統(tǒng),舉個例子,沙茶敏從支付寶提取一筆資金到某小銀行,因?yàn)榧夹g(shù)原因,某個小銀行每次接口訪問都要10秒鐘,不可能在轉(zhuǎn)賬頁面卡10秒,所以支付寶先告訴用戶轉(zhuǎn)賬成功了,然后異步進(jìn)行。

異步,我們通常采用了異步隊(duì)列,異步的好處除了削峰,限流,提升用戶體驗(yàn),還能很好的保護(hù)系統(tǒng)。

總結(jié)

上面就是高并發(fā)系統(tǒng)中常用的幾個套路,當(dāng)然,實(shí)際開發(fā)中我們還有很多要注意的。歡迎大家關(guān)注我,共同學(xué)習(xí),共同進(jìn)步。大家的支持是我繼續(xù)嘮嗑的動力。

【責(zé)任編輯:華軒 TEL:(010)68476606】
推薦內(nèi)容