AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

聊聊接口最大并發(fā)處理數(shù)

來源: 責(zé)編: 時(shí)間:2023-11-20 08:57:45 308觀看
導(dǎo)讀今天跟大家聊聊一個(gè) Java 界的老話題,就是怎么理解接口的最大并發(fā)處理數(shù)。前言生活在 2023 年的互聯(lián)網(wǎng)時(shí)代下,又是在國內(nèi)互聯(lián)網(wǎng)越發(fā)內(nèi)卷的背景下,相信大家面試找工作、網(wǎng)上學(xué)習(xí)查資料時(shí)都了解過互聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)三高指標(biāo),那

今天跟大家聊聊一個(gè) Java 界的老話題,就是怎么理解接口的最大并發(fā)處理數(shù)。xdo28資訊網(wǎng)——每日最新資訊28at.com

前言

生活在 2023 年的互聯(lián)網(wǎng)時(shí)代下,又是在國內(nèi)互聯(lián)網(wǎng)越發(fā)內(nèi)卷的背景下,相信大家面試找工作、網(wǎng)上學(xué)習(xí)查資料時(shí)都了解過互聯(lián)網(wǎng)系統(tǒng)設(shè)計(jì)三高指標(biāo),那就是高并發(fā)、高性能、高可用。本文主要講高并發(fā)、高性能相關(guān)。本質(zhì)上高性能也是為了給高并發(fā)鋪平道路。而高并發(fā)設(shè)計(jì)中一部分就是對應(yīng)了本文主題接口最大并發(fā)數(shù)。本文思維導(dǎo)圖如下,xdo28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片xdo28資訊網(wǎng)——每日最新資訊28at.com

并發(fā)和并行

再開始講并發(fā)之前,我需要再給大家回顧一些舊知識(shí)。xdo28資訊網(wǎng)——每日最新資訊28at.com

什么是并發(fā)?什么是并行...xdo28資訊網(wǎng)——每日最新資訊28at.com

并發(fā)(Concurrency)

早期計(jì)算機(jī)的 CPU 都是單核的,一個(gè) CPU 在同一時(shí)間只能執(zhí)行一個(gè)進(jìn)程/線程,當(dāng)系統(tǒng)中有多個(gè)進(jìn)程/線程等待執(zhí)行時(shí),CPU 只能執(zhí)行完一個(gè)再執(zhí)行下一個(gè)。xdo28資訊網(wǎng)——每日最新資訊28at.com

計(jì)算機(jī)在運(yùn)行過程中,有很多指令會(huì)涉及 I/O 操作,而 I/O 操作又是相當(dāng)耗時(shí)的,速度遠(yuǎn)遠(yuǎn)低于 CPU,這導(dǎo)致 CPU 經(jīng)常處于空閑狀態(tài),只能等待 I/O 操作完成后才能繼續(xù)執(zhí)行后面的指令。xdo28資訊網(wǎng)——每日最新資訊28at.com

為了提高 CPU 利用率,減少等待時(shí)間,人們提出了一種 CPU 并發(fā)工作的理論。xdo28資訊網(wǎng)——每日最新資訊28at.com

所謂并發(fā),就是通過一種算法將 CPU 資源合理地分配給多個(gè)任務(wù),當(dāng)一個(gè)任務(wù)執(zhí)行 I/O 操作時(shí),CPU 可以轉(zhuǎn)而執(zhí)行其它的任務(wù),等到 I/O 操作完成以后,或者新的任務(wù)遇到 I/O 操作時(shí),CPU 再回到原來的任務(wù)繼續(xù)執(zhí)行。xdo28資訊網(wǎng)——每日最新資訊28at.com

下圖展示了兩個(gè)任務(wù)并發(fā)執(zhí)行的過程:xdo28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片xdo28資訊網(wǎng)——每日最新資訊28at.com

圖片來源自C語言中文網(wǎng)-并發(fā)和并行的區(qū)別(圖解)xdo28資訊網(wǎng)——每日最新資訊28at.com

雖然 CPU 在同一時(shí)刻只能執(zhí)行一個(gè)任務(wù),但是通過將 CPU 的使用權(quán)在恰當(dāng)?shù)臅r(shí)機(jī)分配給不同的任務(wù),使得多個(gè)任務(wù)在視覺上看起來是一起執(zhí)行的。CPU 的執(zhí)行速度極快,多任務(wù)切換的時(shí)間也極短,用戶根本感受不到,所以并發(fā)執(zhí)行看起來才跟真的一樣。xdo28資訊網(wǎng)——每日最新資訊28at.com

并行(Parallelism)

并發(fā)是針對單核 CPU 提出的,而并行則是針對多核 CPU 提出的。和單核 CPU 不同,多核 CPU 真正實(shí)現(xiàn)了“同時(shí)執(zhí)行多個(gè)任務(wù)”。xdo28資訊網(wǎng)——每日最新資訊28at.com

多核 CPU 內(nèi)部集成了多個(gè)計(jì)算核心(Core),每個(gè)核心相當(dāng)于一個(gè)簡單的 CPU,如果不計(jì)較細(xì)節(jié),你可以認(rèn)為給計(jì)算機(jī)安裝了多個(gè)獨(dú)立的 CPU。xdo28資訊網(wǎng)——每日最新資訊28at.com

多核 CPU 的每個(gè)核心都可以獨(dú)立地執(zhí)行一個(gè)任務(wù),而且多個(gè)核心之間不會(huì)相互干擾。在不同核心上執(zhí)行的多個(gè)任務(wù),是真正地同時(shí)運(yùn)行,這種狀態(tài)就叫做并行。xdo28資訊網(wǎng)——每日最新資訊28at.com

例如,同樣是執(zhí)行兩個(gè)任務(wù),雙核 CPU 的工作狀態(tài)如下圖所示:xdo28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片xdo28資訊網(wǎng)——每日最新資訊28at.com

圖片來源自C語言中文網(wǎng)-并發(fā)和并行的區(qū)別(圖解)xdo28資訊網(wǎng)——每日最新資訊28at.com

雙核 CPU 執(zhí)行兩個(gè)任務(wù)時(shí),每個(gè)核心各自執(zhí)行一個(gè)任務(wù),和單核 CPU 在兩個(gè)任務(wù)之間不斷切換相比,它的執(zhí)行效率更高。xdo28資訊網(wǎng)——每日最新資訊28at.com

思考一下

那么這里我們講了關(guān)于并發(fā)、并行概念與我們的接口最大并發(fā)處理數(shù)之間有什么關(guān)系嘞?放心這都是鋪墊,為了讓你好消化后面的內(nèi)容。xdo28資訊網(wǎng)——每日最新資訊28at.com

這里我給大家總結(jié)下并發(fā)與并行的概念:xdo28資訊網(wǎng)——每日最新資訊28at.com

  • 并發(fā):在同一時(shí)間段內(nèi),多個(gè)任務(wù)都在執(zhí)行,但不一定是同時(shí)執(zhí)行。這意味著這些任務(wù)在輪流使用 CPU 的時(shí)間片,給人一種它們在“同時(shí)”運(yùn)行的錯(cuò)覺。并發(fā)的真正含義在于,盡管多個(gè)程序或進(jìn)程可能正在運(yùn)行,但每次只有一個(gè)進(jìn)程或線程實(shí)際上正在使用 CPU。
  • 并行:指在同一時(shí)刻,多個(gè)任務(wù)都在執(zhí)行。這通常需要多個(gè)處理器或多核的 CPU 來實(shí)現(xiàn),因?yàn)橹挥羞@樣,每個(gè)處理器或核心才能在同一時(shí)刻執(zhí)行一個(gè)任務(wù)。例如,當(dāng)音樂軟件和 IDEA 同時(shí)運(yùn)行時(shí),如果計(jì)算機(jī)有兩個(gè)以上的 CPU 核心,那么這兩個(gè)應(yīng)用程序就可以真正地并行運(yùn)行。

大家注意我上面加粗的字體,并發(fā)強(qiáng)調(diào)的是在同一段時(shí)間內(nèi),它是一個(gè)時(shí)間范圍的概念。打個(gè)比方,并發(fā)是一個(gè)人同時(shí)吃三個(gè)饅頭,吃完一個(gè)饅頭需要 1 分鐘,他就算胃口在大,也只能一個(gè)一個(gè)饅頭吃,吃完三個(gè)需要花 3 分鐘。xdo28資訊網(wǎng)——每日最新資訊28at.com

再看并行,并行強(qiáng)調(diào)的在同一時(shí)刻。打個(gè)比方,并行就是三個(gè)人同時(shí)吃三個(gè)饅頭。這三個(gè)人可以在同一時(shí)刻一人吃一個(gè)饅頭。吃完三個(gè)只需要花 1 分鐘。xdo28資訊網(wǎng)——每日最新資訊28at.com

那么看到這里,我在問你個(gè)問題,3 個(gè)人的在 3 分鐘內(nèi)最多能吃多少個(gè)饅頭?xdo28資訊網(wǎng)——每日最新資訊28at.com

相信大家都能告訴我。xdo28資訊網(wǎng)——每日最新資訊28at.com

理解接口的最大并發(fā)處理數(shù)

在 Java 語言里面,我們怎么理解并發(fā)跟并行嘞?還是跟吃饅頭一樣,我給大家打個(gè)比方,相信大家就明白了。xdo28資訊網(wǎng)——每日最新資訊28at.com

比如說我有一個(gè)接口,他的 RT (響應(yīng)時(shí)長)是 50 毫秒,只有一個(gè)線程處理客戶端請求,那這個(gè)線程在 1000 毫秒就能夠處理 20 個(gè)客戶端請求。xdo28資訊網(wǎng)——每日最新資訊28at.com

這里 20 就代表一個(gè)線程在 1 秒內(nèi)的最大并發(fā)數(shù)。xdo28資訊網(wǎng)——每日最新資訊28at.com

那假如有兩個(gè)線程處理客戶端請求,接口的最大并發(fā)數(shù)是不是變成了 40,三個(gè)線程處理客戶端請求,接口的最大并發(fā)數(shù)就變成了 60,以此類推。xdo28資訊網(wǎng)——每日最新資訊28at.com

這里我們就可以得出一個(gè)公式,線程個(gè)數(shù) * 單線程最大并發(fā)數(shù) 就代表接口的最大并行處理數(shù)。xdo28資訊網(wǎng)——每日最新資訊28at.com

那么根據(jù)公式,我們得出一個(gè)結(jié)論,通過增大線程數(shù)或者減少接口響應(yīng)時(shí)間可以增大接口的最大并發(fā)處理數(shù)。xdo28資訊網(wǎng)——每日最新資訊28at.com

聊聊 Tomcat 容器的并發(fā)處理配置

在 Spring Boot 發(fā)布后,Tomcat 就成為了 Spring Boot 默認(rèn)的 web 容器。這里結(jié)合上文內(nèi)容,給大家講解下 Spring Boot 中涉及 Tomcat 服務(wù)器的一些關(guān)鍵參數(shù),以及在高并發(fā)情況下如何通過這些參數(shù)來控制請求量。Spring boot 配置文件如下,xdo28資訊網(wǎng)——每日最新資訊28at.com

SpringBoot 版本:3.1.5xdo28資訊網(wǎng)——每日最新資訊28at.com

server:  port: 8080  tomcat:    threads:      max: 200      min-spare: 10    accept-count: 100    max-connections: 8192

server.port

該參數(shù)用于指定服務(wù)器監(jiān)聽的端口號。通過配置不同的端口號,可以實(shí)現(xiàn)多個(gè)服務(wù)在同一主機(jī)上并行運(yùn)行。xdo28資訊網(wǎng)——每日最新資訊28at.com

這里為了方便大家理解,我用開飯店來給大家做比喻。通過指定服務(wù)器 ip + 啟動(dòng)端口,就相當(dāng)于告訴顧客我們的飯店位置,等待顧客上門吃飯。xdo28資訊網(wǎng)——每日最新資訊28at.com

server.tomcat.threads.max

該參數(shù)定義了 Tomcat 服務(wù)器的最大線程數(shù)。在高并發(fā)情況下,可以通過增加最大線程數(shù)來提高服務(wù)器最大并發(fā)處理數(shù)的能力,但需要注意服務(wù)器的硬件資源限制。xdo28資訊網(wǎng)——每日最新資訊28at.com

threads.max 相當(dāng)于設(shè)置飯店在最忙碌時(shí)候,需要的最大的服務(wù)員數(shù)量,假如說一個(gè)服務(wù)員只能服務(wù) 1 個(gè)客人,那么 200 個(gè)服務(wù)員就可以同時(shí)服務(wù) 200 個(gè)客人,注意這是并行服務(wù)哦。xdo28資訊網(wǎng)——每日最新資訊28at.com

server.tomcat.threads.min-spare

此參數(shù)用于設(shè)置服務(wù)器在空閑狀態(tài)下保持的最小線程數(shù)。確保服務(wù)器在處理請求時(shí)有足夠的線程可用,以避免延遲。xdo28資訊網(wǎng)——每日最新資訊28at.com

threads.min-spare 相當(dāng)于設(shè)置飯店空閑時(shí)候需要的最少的服務(wù)員數(shù)量。xdo28資訊網(wǎng)——每日最新資訊28at.com

server.tomcat.max-connections

該參數(shù)指定服務(wù)器接受和處理的客戶端最大連接數(shù)。超過這個(gè)限制后,會(huì)放入 accept-count 隊(duì)列中xdo28資訊網(wǎng)——每日最新資訊28at.com

max-connections 相當(dāng)于設(shè)置飯店空間內(nèi)客人的最大容納數(shù)量,注意是容納,進(jìn)了飯店的客人不是一進(jìn)來就能享受服務(wù)的。往往還需要等待一段時(shí)間。這段時(shí)間就是當(dāng)服務(wù)員服務(wù)上一個(gè)客人完畢后,有空出來的服務(wù)員才能給進(jìn)店新客人服務(wù)。xdo28資訊網(wǎng)——每日最新資訊28at.com

server.tomcat.accept-count

此參數(shù)定義了當(dāng)所有可能的請求處理線程都在使用時(shí),傳入連接請求的最大隊(duì)列長度。在高并發(fā)情況下,可以通過適當(dāng)調(diào)整此參數(shù)來控制連接請求的排隊(duì)長度。xdo28資訊網(wǎng)——每日最新資訊28at.com

accept-count 相當(dāng)于設(shè)置飯店門口的排隊(duì)人數(shù)大小。想一想我們外出吃飯的時(shí)候,什么情況需要排隊(duì),當(dāng)然是店內(nèi)爆滿,沒有座位。那么這個(gè)時(shí)候你就需要排個(gè)隊(duì)了。注意如果說排隊(duì)人都滿了,怎么辦?xdo28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)時(shí)候飯店就會(huì)通知沒有排上隊(duì),還想要假如排隊(duì)的人,“你們不要排隊(duì)了,今天吃飯人滿了,大家去別處吃飯吧!”。xdo28資訊網(wǎng)——每日最新資訊28at.com

對應(yīng)上 Tomcat 就是遇到客戶端連接數(shù)量超過了 max-connections + accept-count 大小后的情況,此時(shí) Tomcat 會(huì)直接拒絕新的客戶端連接。xdo28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-31006-0.html聊聊接口最大并發(fā)處理數(shù)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 升級到 Pulsar3.0 后深入了解 JWT 鑒權(quán)

下一篇: JVM內(nèi)存線程Dump

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 鴻蒙OS 4.0公測機(jī)型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統(tǒng)將于今天下午正式登場,官方在發(fā)布會(huì)之前也已經(jīng)正式給出了可升級的機(jī)型產(chǎn)品,這意味著這些機(jī)型會(huì)率先支持升級享用。這次的HarmonyOS 4.0支持
  • 石頭自清潔掃拖機(jī)器人G10S評測:多年黑科技集大成之作 懶人終極福音

    科技圈經(jīng)常能看到一個(gè)詞叫“縫合怪”,用來形容那些把好多功能或者外觀結(jié)合在一起的產(chǎn)品,通常這樣的詞是貶義詞,但如果真的是產(chǎn)品縫合的好、縫合的實(shí)用的話,那它就成了中性詞,今
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現(xiàn)已正式出爐,冠軍是來自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從“最美JK”起到“最美女星&r
  • K6:面向開發(fā)人員的現(xiàn)代負(fù)載測試工具

    K6 是一個(gè)開源負(fù)載測試工具,可以輕松編寫、運(yùn)行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設(shè)計(jì)為功能強(qiáng)大、可擴(kuò)展且易于使用。k6 可用于測試各種應(yīng)用程序,包括 Web
  • 得物效率前端微應(yīng)用推進(jìn)過程與思考

    一、背景效率工程隨著業(yè)務(wù)的發(fā)展,組織規(guī)模的擴(kuò)大,越來越多的企業(yè)開始意識(shí)到協(xié)作效率對于企業(yè)團(tuán)隊(duì)的重要性,甚至是決定其在某個(gè)行業(yè)競爭中突圍的關(guān)鍵,是企業(yè)長久生存的根本。得物
  • 如何通過Python線程池實(shí)現(xiàn)異步編程?

    線程池的概念和基本原理線程池是一種并發(fā)處理機(jī)制,它可以在程序啟動(dòng)時(shí)創(chuàng)建一組線程,并將它們置于等待任務(wù)的狀態(tài)。當(dāng)任務(wù)到達(dá)時(shí),線程池中的某個(gè)線程會(huì)被喚醒并執(zhí)行任務(wù),執(zhí)行完任
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準(zhǔn)追劇女孩們的古偶劇集,2021年有優(yōu)酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 機(jī)構(gòu)稱Q2國內(nèi)智能手機(jī)銷量同比下滑4% vivo份額重回第1

    7月29日消息,根據(jù)市場調(diào)查機(jī)構(gòu)Counterpoint Research公布的最新報(bào)告,2023年第2季度中國智能手機(jī)銷量同比下降4%,創(chuàng)新自2014年以來第2季度銷量新低。報(bào)
  • 華為舉行春季智慧辦公新品發(fā)布會(huì) 首次推出電子墨水屏平板

    北京時(shí)間2月27日晚,華為在巴塞羅那舉行春季智慧辦公新品發(fā)布會(huì),在海外市場推出之前已經(jīng)在中國市場上市的筆記本、平板、激光打印機(jī)等辦公產(chǎn)品,并首次推出搭載
Top