日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

说实话,你的API接口在高并发面前不堪一击!

發(fā)布時(shí)間:2025/3/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 说实话,你的API接口在高并发面前不堪一击! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

衡量一個(gè)接口是否能夠支撐高并發(fā),我們最先想到的就是他的QPS是多少,影響QPS大小的關(guān)鍵因素是你的系統(tǒng)是否支持分布式、高并發(fā),當(dāng)提起這幾三個(gè)詞的時(shí)候,是不是很多人都認(rèn)為分布式=高并發(fā)=多線程?

當(dāng)面試官問到高并發(fā)系統(tǒng)可以采用哪些手段來解決,或者被問到分布式系統(tǒng)如何解決一致性的問題,是不是一臉懵逼?

確實(shí),在一開始接觸的時(shí)候,不少人都會(huì)將三者混淆,誤以為所謂的分布式高并發(fā)的系統(tǒng)就是能同時(shí)供海量用戶訪問,而采用多線程手段不就是可以提供系統(tǒng)的并發(fā)能力嗎?

實(shí)際上,他們?nèi)齻€(gè)總是相伴而生,但側(cè)重點(diǎn)又有不同。

01

什么是分布式?

分布式更多的一個(gè)概念,是為了解決單個(gè)物理服務(wù)器容量和性能瓶頸問題而采用的優(yōu)化手段。

該領(lǐng)域需要解決的問題極多,在不同的技術(shù)層面上,又包括:分布式文件系統(tǒng)、分布式緩存、分布式數(shù)據(jù)庫、分布式計(jì)算等,一些名詞如Hadoop、zookeeper、MQ等都跟分布式有關(guān)。

從理念上講,分布式的實(shí)現(xiàn)有兩種形式:

水平擴(kuò)展:當(dāng)一臺(tái)機(jī)器扛不住流量時(shí),就通過添加機(jī)器的方式,將流量平分到所有服務(wù)器上,所有機(jī)器都可以提供相當(dāng)?shù)姆?wù);

垂直拆分:前端有多種查詢需求時(shí),一臺(tái)機(jī)器扛不住,可以將不同的需求分發(fā)到不同的機(jī)器上,比如A機(jī)器處理余票查詢的請(qǐng)求,B機(jī)器處理支付的請(qǐng)求。

02

什么是高并發(fā)?

相對(duì)于分布式來講,高并發(fā)在解決的問題上會(huì)集中一些,其反應(yīng)的是同時(shí)有多少量:比如在線直播服務(wù),同時(shí)有上萬人觀看。

高并發(fā)可以通過分布式技術(shù)去解決,將并發(fā)流量分到不同的物理服務(wù)器上。

但除此之外,還可以有很多其他優(yōu)化手段:比如使用緩存系統(tǒng),將所有的,靜態(tài)內(nèi)容放到CDN等;還可以使用多線程技術(shù)將一臺(tái)服務(wù)器的服務(wù)能力最大化。

03

什么是多線程?

多線程是指從軟件或者硬件上實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù),它更多的是解決CPU調(diào)度多個(gè)進(jìn)程的問題,從而讓這些進(jìn)程看上去是同時(shí)執(zhí)行(實(shí)際是交替運(yùn)行的)。

這幾個(gè)概念中,多線程解決的問題是最明確的,手段也是比較單一的,基本上遇到的最大問題就是線程安全。

在JAVA語言中,需要對(duì)JVM內(nèi)存模型、指令重排等深入了解,才能寫出一份高質(zhì)量的多線程代碼。

總結(jié)一下:

●分布式是從物理資源的角度去將不同的機(jī)器組成一個(gè)整體對(duì)外服務(wù),技術(shù)范圍非常廣且難度非常大,有了這個(gè)基礎(chǔ),高并發(fā)、高吞吐等系統(tǒng)很容易構(gòu)建;

● 高并發(fā)是從業(yè)務(wù)角度去描述系統(tǒng)的能力,實(shí)現(xiàn)高并發(fā)的手段可以采用分布式,也可以采用諸如緩存、CDN等,當(dāng)然也包括多線程;

● 多線程則聚焦于如何使用編程語言將CPU調(diào)度能力最大化。

分布式與高并發(fā)系統(tǒng),涉及到大量的概念和知識(shí)點(diǎn),如果沒有系統(tǒng)的學(xué)習(xí),很容易會(huì)雜糅概念而辨識(shí)不清,在面試與實(shí)際工作中都會(huì)遇到困難。這些知識(shí)點(diǎn),可以按照以下的思維導(dǎo)圖系統(tǒng)性的學(xué)習(xí)。

(掃描文末二維碼,領(lǐng)取高清完整版思維導(dǎo)圖)

當(dāng)然!僅僅有思維導(dǎo)圖還不夠,1024程序員來臨之際,網(wǎng)易云信攜手云課堂為程序員送福利!我們?yōu)榇蠹覝?zhǔn)備了免費(fèi)的Java源碼與實(shí)戰(zhàn)視頻直播課程,系統(tǒng)+實(shí)戰(zhàn)助力全面提升

No.1

Java高級(jí)進(jìn)階系列直播

【源碼+實(shí)戰(zhàn)+原理+技能】直播主題

10月14日 20:00

不學(xué)SpringBoot原理,終究是個(gè)CURDer!

10月15日 20:00

面對(duì)上億數(shù)據(jù)量,網(wǎng)易用啥技術(shù)?

10月16日 20:00

Spring注解從原理剖析到組件封裝

10月17日 20:00

數(shù)據(jù)大并發(fā)高!告訴你網(wǎng)易數(shù)據(jù)庫架構(gòu)怎么玩優(yōu)化

10月18日 20:00

互聯(lián)網(wǎng)面試必問—線程池原理與API精析

10月19日 20:00

玩轉(zhuǎn)redis高性能分布式鎖

10月20日 20:00

互聯(lián)網(wǎng)面試必問—NIO詳解

No.2

網(wǎng)易Java進(jìn)階資料包

掃描下方二維碼,免費(fèi)領(lǐng)取

上述高清思維導(dǎo)圖

以及配套的Java資料包與直播

加助教小姐姐免費(fèi)獲取

免費(fèi)直播,先到先得~

總結(jié)

以上是生活随笔為你收集整理的说实话,你的API接口在高并发面前不堪一击!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。