日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]什么是高并發(fā),從字面上理解,就是在某一時(shí)刻產(chǎn)生大量的請(qǐng)求,那么多少量稱為大量,業(yè)界并沒(méi)有標(biāo)準(zhǔn)的衡量范圍。原因非常簡(jiǎn)單,不同的業(yè)務(wù)處理復(fù)雜度不一樣。

高并發(fā),幾乎是每個(gè)程序員都想擁有的經(jīng)驗(yàn)。原因很簡(jiǎn)單:隨著流量變大,會(huì)遇到各種各樣的技術(shù)問(wèn)題,比如接口響應(yīng)超時(shí)、CPU load升高、GC頻繁、死鎖、大數(shù)據(jù)量存儲(chǔ)等等,這些問(wèn)題能推動(dòng)我們?cè)诩夹g(shù)深度上不斷精進(jìn)。

什么是高并發(fā),從字面上理解,就是在某一時(shí)刻產(chǎn)生大量的請(qǐng)求,那么多少量稱為大量,業(yè)界并沒(méi)有標(biāo)準(zhǔn)的衡量范圍。原因非常簡(jiǎn)單,不同的業(yè)務(wù)處理復(fù)雜度不一樣。

而我所理解的高并發(fā),它并不只是一個(gè)數(shù)字,而更是一種架構(gòu)思維模式,它讓你在面對(duì)不同的復(fù)雜情況下,從容地選擇不同的技術(shù)手段,來(lái)提升應(yīng)用系統(tǒng)的處理能力。

但是,并不意味應(yīng)用系統(tǒng)從誕生的那一刻,就需要具備強(qiáng)大的處理能力,這種做法并不提倡。要知道,脫離實(shí)際情況的技術(shù),會(huì)顯得毫無(wú)價(jià)值,甚至是一種浪費(fèi)的表現(xiàn)。

言歸正傳,那高并發(fā)到底是一種怎樣的架構(gòu)思維模式,它對(duì)架構(gòu)設(shè)計(jì)又有什么影響,以及如何通過(guò)它來(lái)驅(qū)動(dòng)架構(gòu)演進(jìn),讓我們接著往下讀,慢慢去體會(huì)這其中的精髓。

性能是一種基礎(chǔ)

在架構(gòu)設(shè)計(jì)的過(guò)程中,思考固然重要,但目標(biāo)更為關(guān)鍵。通過(guò)目標(biāo)的牽引力,可以始終確保推進(jìn)方向,不會(huì)脫離成功的軌道。那高并發(fā)的目標(biāo)是什么,估計(jì)你的第一反應(yīng)就是性能。

沒(méi)錯(cuò),性能是高并發(fā)的目標(biāo)之一,它不可或缺,但并不代表所有。而我將它視為是高并發(fā)的一種基礎(chǔ)能力,它的能力高低將會(huì)直接影響到其他能力的取舍。例如:服務(wù)可用性,數(shù)據(jù)一致性等。

性能在軟件研發(fā)過(guò)程中無(wú)處不在,不管是在非功能性需求中,還是在性能測(cè)試報(bào)告中,都能見到它的身影。那么如何來(lái)衡量它的高低呢,先來(lái)看看常用的性能指標(biāo)。

在過(guò)往的面試中,如果候選人做過(guò)高并發(fā)的項(xiàng)目,我通常會(huì)讓對(duì)方談?wù)剬?duì)于高并發(fā)的理解,但是能系統(tǒng)性地回答好此問(wèn)題的人并不多,大概分成這樣幾類:

1、對(duì)數(shù)據(jù)化的指標(biāo)沒(méi)有概念:不清楚選擇什么樣的指標(biāo)來(lái)衡量高并發(fā)系統(tǒng)?分不清并發(fā)量和QPS,甚至不知道自己系統(tǒng)的總用戶量、活躍用戶量,平峰和高峰時(shí)的QPS和TPS等關(guān)鍵數(shù)據(jù)。

2、設(shè)計(jì)了一些方案,但是細(xì)節(jié)掌握不透徹:講不出該方案要關(guān)注的技術(shù)點(diǎn)和可能帶來(lái)的副作用。比如讀性能有瓶頸會(huì)引入緩存,但是忽視了緩存命中率、熱點(diǎn)key、數(shù)據(jù)一致性等問(wèn)題。

3、理解片面,把高并發(fā)設(shè)計(jì)等同于性能優(yōu)化:大談并發(fā)編程、多級(jí)緩存、異步化、水平擴(kuò)容,卻忽視高可用設(shè)計(jì)、服務(wù)治理和運(yùn)維保障。

4、掌握大方案,卻忽視最基本的東西:能講清楚垂直分層、水平分區(qū)、緩存等大思路,卻沒(méi)意識(shí)去分析數(shù)據(jù)結(jié)構(gòu)是否合理,算法是否高效,沒(méi)想過(guò)從最根本的IO和計(jì)算兩個(gè)維度去做細(xì)節(jié)優(yōu)化。

如何理解高并發(fā)?高并發(fā)系統(tǒng)設(shè)計(jì)的目標(biāo)是什么?高并發(fā)的實(shí)踐方案有哪些?

如何理解高并發(fā)?

高并發(fā)意味著大流量,需要運(yùn)用技術(shù)手段抵抗流量的沖擊,這些手段好比操作流量,能讓流量更平穩(wěn)地被系統(tǒng)所處理,帶給用戶更好的體驗(yàn)。

我們常見的高并發(fā)場(chǎng)景有:淘寶的雙11、春運(yùn)時(shí)的搶票、微博大V的熱點(diǎn)新聞等。除了這些典型事情,每秒幾十萬(wàn)請(qǐng)求的秒殺系統(tǒng)、每天千萬(wàn)級(jí)的訂單系統(tǒng)、每天億級(jí)日活的信息流系統(tǒng)等,都可以歸為高并發(fā)。

很顯然,上面談到的高并發(fā)場(chǎng)景,并發(fā)量各不相同,那到底多大并發(fā)才算高并發(fā)呢?

1、不能只看數(shù)字,要看具體的業(yè)務(wù)場(chǎng)景。不能說(shuō)10W QPS的秒殺是高并發(fā),而1W QPS的信息流就不是高并發(fā)。信息流場(chǎng)景涉及復(fù)雜的推薦模型和各種人工策略,它的業(yè)務(wù)邏輯可能比秒殺場(chǎng)景復(fù)雜10倍不止。因此,不在同一個(gè)維度,沒(méi)有任何比較意義。

2、業(yè)務(wù)都是從0到1做起來(lái)的,并發(fā)量和QPS只是參考指標(biāo),最重要的是:在業(yè)務(wù)量逐漸變成原來(lái)的10倍、100倍的過(guò)程中,你是否用到了高并發(fā)的處理方法去演進(jìn)你的系統(tǒng),從架構(gòu)設(shè)計(jì)、編碼實(shí)現(xiàn)、甚至產(chǎn)品方案等維度去預(yù)防和解決高并發(fā)引起的問(wèn)題?而不是一味的升級(jí)硬件、加機(jī)器做水平擴(kuò)展。

此外,各個(gè)高并發(fā)場(chǎng)景的業(yè)務(wù)特點(diǎn)完全不同:有讀多寫少的信息流場(chǎng)景、有讀多寫多的交易場(chǎng)景,那是否有通用的技術(shù)方案解決不同場(chǎng)景的高并發(fā)問(wèn)題呢?

我覺得大的思路可以借鑒,別人的方案也可以參考,但是真正落地過(guò)程中,細(xì)節(jié)上還會(huì)有無(wú)數(shù)的坑。另外,由于軟硬件環(huán)境、技術(shù)棧、以及產(chǎn)品邏輯都沒(méi)法做到完全一致,這些都會(huì)導(dǎo)致同樣的業(yè)務(wù)場(chǎng)景,就算用相同的技術(shù)方案也會(huì)面臨不同的問(wèn)題,這些坑還得一個(gè)個(gè)趟。

高并發(fā)系統(tǒng)設(shè)計(jì)的目標(biāo)是什么?

先搞清楚高并發(fā)系統(tǒng)設(shè)計(jì)的目標(biāo),在此基礎(chǔ)上再討論設(shè)計(jì)方案和實(shí)踐經(jīng)驗(yàn)才有意義和針對(duì)性。

2.1 宏觀目標(biāo)

高并發(fā)絕不意味著只追求高性能,這是很多人片面的理解。從宏觀角度看,高并發(fā)系統(tǒng)設(shè)計(jì)的目標(biāo)有三個(gè):高性能、高可用,以及高可擴(kuò)展。

1、高性能:性能體現(xiàn)了系統(tǒng)的并行處理能力,在有限的硬件投入下,提高性能意味著節(jié)省成本。同時(shí),性能也反映了用戶體驗(yàn),響應(yīng)時(shí)間分別是100毫秒和1秒,給用戶的感受是完全不同的。

2、高可用:表示系統(tǒng)可以正常服務(wù)的時(shí)間。一個(gè)全年不停機(jī)、無(wú)故障;另一個(gè)隔三差五出線上事故、宕機(jī),用戶肯定選擇前者。另外,如果系統(tǒng)只能做到90%可用,也會(huì)大大拖累業(yè)務(wù)。

3、高擴(kuò)展:表示系統(tǒng)的擴(kuò)展能力,流量高峰時(shí)能否在短時(shí)間內(nèi)完成擴(kuò)容,更平穩(wěn)地承接峰值流量,比如雙11活動(dòng)、明星離婚等熱點(diǎn)事件。

高并發(fā)是每個(gè)程序員都渴望了解和掌握的技能。隨著流量的增長(zhǎng),我們面臨著各種技術(shù)挑戰(zhàn),比如接口響應(yīng)超時(shí)、CPU Load 上升、GC 頻繁,死鎖等問(wèn)題。解決這些問(wèn)題是需要我們不斷精進(jìn)自我技術(shù)深度。

然而,在面對(duì)高并發(fā),很多人對(duì)其的理解并不透徹,其實(shí)不管是后端程序員,也不管你用的是什么語(yǔ)言,還是測(cè)試工程師、運(yùn)維工程師,都需要對(duì)高并發(fā)有很好的了解和掌握。

在過(guò)往面試候選人的時(shí)候,一旦看到簡(jiǎn)歷中有高并發(fā)經(jīng)驗(yàn),尤其是那種寫著擅長(zhǎng)和精通高并發(fā)系統(tǒng)設(shè)計(jì)與開發(fā)的候選人,我就特別興奮,但是結(jié)果往往是讓我失望的,很少有人能全面系統(tǒng)性地回答關(guān)于高并發(fā)相關(guān)的問(wèn)題。

類型一:高并發(fā)基本概念不清

這些簡(jiǎn)歷寫著高并發(fā)經(jīng)驗(yàn)的候選人,有很大一批對(duì)高并發(fā)基本概念都是不清楚的,最典型的就是我們?nèi)绾魏饬恳粋€(gè)系統(tǒng)是高并發(fā)系統(tǒng)。更有甚者竟然連什么叫并發(fā)量、什么是 QPS 都不知道。一個(gè)內(nèi)部系統(tǒng)都能說(shuō)出 QPS 上萬(wàn)的答案。

類型二:高并發(fā)技術(shù)細(xì)節(jié)掌握弱

也確實(shí)有一部分候選人參與了高并發(fā)系統(tǒng)的開發(fā),甚至也參與了一些技術(shù)方案的設(shè)計(jì)。但是他們卻很難講出高并發(fā)技術(shù)方案要關(guān)注的技術(shù)細(xì)節(jié)以及優(yōu)缺點(diǎn)。比如我們正常在提升讀數(shù)據(jù)性能場(chǎng)景時(shí),引入緩存實(shí)現(xiàn)方案,這個(gè)都能答出來(lái),但是你繼續(xù)問(wèn)緩存命中率、HotKey、數(shù)據(jù)一致性這些就不會(huì)了。

類型三:高并發(fā)缺乏體系化理解

高并發(fā)技術(shù)體系是一個(gè)系統(tǒng)化的工程,要求全面性,而現(xiàn)實(shí)中很多技術(shù)人卻掌握的很片面,一提到高并發(fā)就開始回答多線程并發(fā)編程技術(shù)、緩存技術(shù)、消息中間件技術(shù)等,但是他們不知道在高并發(fā)系統(tǒng)中,如何進(jìn)行系統(tǒng)的高可用保障方案以及如何進(jìn)行運(yùn)維保障等相關(guān)內(nèi)容。

當(dāng)然,就像灸哥一直說(shuō)的,一位高并發(fā)系統(tǒng)設(shè)計(jì)專家從來(lái)都不是靠課本等渠道學(xué)習(xí)出來(lái)的,而是實(shí)打?qū)嵄槐瞥鰜?lái)的。你想想當(dāng)年灸哥在某寶直播團(tuán)隊(duì),當(dāng) QPS 到幾十萬(wàn)甚至上千萬(wàn)的時(shí)候,如果我負(fù)責(zé)的系統(tǒng)服務(wù)不能扛住,那我就是 3.25,年底啥也沒(méi)有。那這種情況下,你要不要對(duì)你的系統(tǒng)做高并發(fā)的系統(tǒng)重構(gòu)優(yōu)化呢?答案是非??隙ǖ?。

接下來(lái),我將結(jié)合我多年的高并發(fā)項(xiàng)目經(jīng)歷,會(huì)給大家一起來(lái)聊聊高并發(fā)相關(guān)的內(nèi)容。

首先,我們先一起聊聊高并發(fā)是什么?

高并發(fā)的定義

高并發(fā)是指系統(tǒng)在同一時(shí)間段內(nèi)同時(shí)處理大量請(qǐng)求的能力,這里的請(qǐng)求包括網(wǎng)絡(luò)請(qǐng)求、數(shù)據(jù)庫(kù)訪問(wèn)請(qǐng)求、文件讀寫請(qǐng)求等。簡(jiǎn)單講,就是當(dāng)有大量用戶同時(shí)訪問(wèn)你的系統(tǒng)時(shí),系統(tǒng)能夠有效處理這些請(qǐng)求而不出現(xiàn)性能下降或者系統(tǒng)崩潰的情況。

通俗講,高并發(fā)就是指系統(tǒng)突增巨大請(qǐng)求流量,需要程序員通過(guò)各種技術(shù)手段來(lái)應(yīng)對(duì)高流量對(duì)你系統(tǒng)的沖擊,讓你的系統(tǒng)不掛,前端可以正常服務(wù)用戶。像阿里的雙十一、雙十二、京東的六一八等促銷場(chǎng)景,都是高并發(fā)的典型場(chǎng)景。

但是,對(duì)于多少的并發(fā)量才算是高并發(fā)呢?這個(gè)需要根據(jù)具體的業(yè)務(wù)場(chǎng)景來(lái)確定的,業(yè)內(nèi)并沒(méi)有一個(gè)確定性的數(shù)據(jù)指標(biāo)來(lái)定義。

除了對(duì)應(yīng)的數(shù)字以外,我們?cè)谶M(jìn)行高并發(fā)系統(tǒng)設(shè)計(jì)的時(shí)候,更多的需要考慮業(yè)務(wù)場(chǎng)景的復(fù)雜性和處理方式。不同的業(yè)務(wù)場(chǎng)景需要不同的處理方法。

因此,對(duì)于高并發(fā)的理解,它不是簡(jiǎn)單地追求數(shù)字,而是需要綜合考慮多個(gè)維度。

接下來(lái),我們聊一聊高并發(fā)系統(tǒng)的目標(biāo)有哪些?

高并發(fā)的目標(biāo)

高并發(fā)系統(tǒng)的目標(biāo)從系統(tǒng)層面看,有高性能、高可用和高擴(kuò)展三個(gè)目標(biāo),這三個(gè)目標(biāo)是相輔相成,需要綜合在一起考慮。在追求系統(tǒng)高性能的同時(shí),也要保障對(duì)應(yīng)系統(tǒng)的高可用和高擴(kuò)展。只有全面綜合考慮這三個(gè)目標(biāo),才能設(shè)計(jì)出穩(wěn)定、高效的高并發(fā)系統(tǒng)架構(gòu)。

高性能

高性能是高并發(fā)系統(tǒng)的首要目標(biāo)之一,系統(tǒng)需要能夠在短時(shí)間內(nèi)處理大量的并發(fā)請(qǐng)求,保持良好的響應(yīng)速度和低延遲,以提供優(yōu)質(zhì)的用戶體驗(yàn)。你可以想想,同樣的兩個(gè)產(chǎn)品,你在 A 這一個(gè)下單請(qǐng)求需要 1min,在 B 這僅需要 10ms,你心里的感覺是如何的呢?是不是對(duì) A 開始罵娘?甚至已經(jīng)馬上卸載了 A 吧?高性能的系統(tǒng)是能夠滿足用戶對(duì)實(shí)時(shí)性和響應(yīng)速度的需求,提升用戶滿意度。

高可用

高可用性是指系統(tǒng)能夠保持長(zhǎng)時(shí)間的穩(wěn)定運(yùn)行,對(duì)于用戶的請(qǐng)求都能夠做出及時(shí)的響應(yīng),不會(huì)因?yàn)橄到y(tǒng)故障或者其他原因?qū)е路?wù)中斷或者不可用。高可用性的系統(tǒng)能夠最大程度地減少因系統(tǒng)故障而造成的損失,保障業(yè)務(wù)的連續(xù)性和穩(wěn)定性。你可以想想如果一個(gè)系統(tǒng)全年不宕機(jī),另外一個(gè)系統(tǒng)隔三差五地來(lái)個(gè)線上事故,如果你是用戶,你會(huì)怎么選擇呢?

高擴(kuò)展

高擴(kuò)展性是指系統(tǒng)能夠在業(yè)務(wù)量增長(zhǎng)或者流量激增的情況下,可以通過(guò)增加資源或者擴(kuò)展節(jié)點(diǎn)等簡(jiǎn)單方式就可以提升系統(tǒng)的處理能力,保持系統(tǒng)的穩(wěn)定性和性能表現(xiàn)。高擴(kuò)展性的系統(tǒng)能夠隨著業(yè)務(wù)的發(fā)展而靈活調(diào)整,適應(yīng)不斷變化的業(yè)務(wù)需求。

以上三個(gè)目標(biāo)被稱為是高并發(fā)系統(tǒng)的宏觀目標(biāo),在微觀層面同樣也有著對(duì)應(yīng)的目標(biāo),我們接下來(lái)一起看看微觀層面的目標(biāo):

性能指標(biāo)

評(píng)估一個(gè)高并發(fā)系統(tǒng)的性能指標(biāo)一般包括系統(tǒng)的響應(yīng)時(shí)間、吞吐量、處理能力等,通過(guò)監(jiān)控這些性能指標(biāo)可以評(píng)估出系統(tǒng)的性能表現(xiàn),并根據(jù)分析結(jié)果對(duì)系統(tǒng)進(jìn)行優(yōu)化和調(diào)整。

QPS Queries Per Second

QPS 是衡量信息系統(tǒng)在一秒鐘內(nèi)接收到的搜索流量的一種常見度量指標(biāo),被廣泛應(yīng)用在任何請(qǐng)求-響應(yīng)的系統(tǒng)中,稱為每秒請(qǐng)求數(shù)。對(duì)于高并發(fā)的系統(tǒng),必須要關(guān)注 QPS,這樣你才能指導(dǎo)你的系統(tǒng)何時(shí)需要進(jìn)行擴(kuò)容。

TPS,Transactions Per Second

TPS 是軟件測(cè)試結(jié)果的測(cè)量單位,是指每秒的事務(wù)數(shù)量,一個(gè)事務(wù)是指一個(gè)客戶端向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出響應(yīng)的過(guò)程。客戶端在發(fā)送請(qǐng)求時(shí)開始計(jì)時(shí),收到服務(wù)器響應(yīng)后結(jié)束計(jì)時(shí),用來(lái)計(jì)算使用的時(shí)間和完成的事務(wù)個(gè)數(shù)。

QPS VS TPS

QPS 基本可以理解為類似于 TPS,但不同的是,對(duì)于一個(gè)頁(yè)面的一次訪問(wèn),形成一個(gè) TPS,但一次頁(yè)面請(qǐng)求,可能會(huì)產(chǎn)生多次對(duì)服務(wù)器的請(qǐng)求,就是說(shuō)會(huì)有多個(gè) QPS。

RT Response-time

RT 是指一個(gè)請(qǐng)求從開始到最后收到響應(yīng)數(shù)據(jù)結(jié)果所花費(fèi)的總時(shí)間,即響應(yīng)時(shí)間。響應(yīng)時(shí)間是一個(gè)系統(tǒng)最重要的指標(biāo)之一,它的數(shù)值大小直接反應(yīng)了系統(tǒng)的快慢。

并發(fā)數(shù)

并發(fā)數(shù)是指系統(tǒng)同時(shí)能處理的請(qǐng)求數(shù)量,這個(gè)指標(biāo)反應(yīng)了系統(tǒng)的負(fù)載能力。并發(fā)意味著可以同時(shí)進(jìn)行多個(gè)處理,并發(fā)在現(xiàn)代編程中無(wú)處不在。

吞吐量

系統(tǒng)的吞吐量和處理對(duì) CPU 的消耗、外部接口、IO 等多個(gè)因素緊密相關(guān),單個(gè)處理請(qǐng)求對(duì) CPU 消耗越高,外部系統(tǒng)接口、IO 速度越慢,系統(tǒng)的吞吐能力越低,反之越高。系統(tǒng)吞吐量有幾個(gè)重要指標(biāo)參數(shù):QPS/TPS、并發(fā)數(shù)、響應(yīng)時(shí)間。

接下來(lái)我們來(lái)看一個(gè)具體的例子來(lái)理解這些指標(biāo)。

某寶直播業(yè)務(wù)要求預(yù)估計(jì)算對(duì)應(yīng)的各個(gè)指標(biāo)。正常在進(jìn)行流量估算的時(shí)候,會(huì)采用二八定律,如果每天 80% 的訪問(wèn)集中在 20% 的時(shí)間段里,那這個(gè) 20% 的時(shí)間就被稱為峰值時(shí)間。

那峰值時(shí)間內(nèi)的 QPS 粗估就可以按照下面的公式來(lái)計(jì)算:

峰值時(shí)間的 QPS = (總 PV 數(shù) * 80%)/(每天秒數(shù) * 20%)

所需要的機(jī)器需求就可以這么來(lái)計(jì)算:

需要的機(jī)器數(shù)量 = 峰值時(shí)間的 QPS / 單臺(tái)機(jī)器的 QPS

可用性指標(biāo)

可用性指標(biāo)主要用于評(píng)估在一段時(shí)間內(nèi)保持正常運(yùn)行的能力,以及系統(tǒng)對(duì)用戶請(qǐng)求的響應(yīng)能力??捎眯灾笜?biāo)有助于衡量系統(tǒng)的穩(wěn)定性和可靠性,確保系統(tǒng)可以滿足用戶的需求。

系統(tǒng)的可用時(shí)間

系統(tǒng)的可用時(shí)間是指系統(tǒng)在一定時(shí)間段內(nèi)正常運(yùn)行的時(shí)間總和,通常以百分比形式表示,計(jì)算公式如下:

可用性 = 正常運(yùn)行時(shí)間 / 系統(tǒng)總運(yùn)行時(shí)間

高并發(fā)系統(tǒng)一般會(huì)要求在 99.9% 以上的可用性,甚至更高,這也就是我們?cè)谌粘9ぷ髦姓f(shuō)的幾個(gè) 9。具體的數(shù)值計(jì)算如下圖所示:

可用性一天總故障時(shí)間一年總故障時(shí)間

90%2.4 H36.5 D

99%14.4 min3.65 D

99.9%1.44 min8 H

99.99%8.6 s52 min

高可用性除了主要依賴可用性這一指標(biāo)以外,一般還有以下幾個(gè)考量指標(biāo):

故障率

故障率是指系統(tǒng)在一定時(shí)間內(nèi)發(fā)生故障的次數(shù)與總操作次數(shù)的比率,它可以幫助評(píng)估系統(tǒng)的穩(wěn)定性,通常以每天、每月、每季度的故障次數(shù)來(lái)衡量。

平均故障間隔時(shí)間

平均故障間隔時(shí)間是指系統(tǒng)在兩次故障之間的平均時(shí)間間隔,通常以天為單位,比較長(zhǎng)的平均故障間隔時(shí)間說(shuō)明系統(tǒng)更穩(wěn)定可靠。

平均修復(fù)時(shí)間

平均修復(fù)時(shí)間是指系統(tǒng)從發(fā)生故障到回復(fù)正常運(yùn)行所需的平均時(shí)間,比較短的平均修復(fù)時(shí)間意味著系統(tǒng)可以更快地恢復(fù)正常運(yùn)行。

擴(kuò)展性指標(biāo)

面對(duì)激增突發(fā)的流量,不可能也來(lái)不及改造架構(gòu)應(yīng)對(duì),最快的方式就是通用增加機(jī)器和擴(kuò)展節(jié)點(diǎn)來(lái)提高系統(tǒng)的處理能力。對(duì)于業(yè)務(wù)服務(wù)集群或者基礎(chǔ)組件來(lái)說(shuō),擴(kuò)展性 = 性能提升比例 / 機(jī)器增加比例。比較理想的擴(kuò)展能力就是資源增加幾倍,性能提升幾倍。正常高并發(fā)系統(tǒng),在擴(kuò)展性上的要求是維持在 70% 以上。

很多人在應(yīng)對(duì)擴(kuò)展性的時(shí)候,最常用的方案就是把服務(wù)設(shè)計(jì)成無(wú)狀態(tài)服務(wù),但是當(dāng)流量增長(zhǎng) 100 倍,服務(wù)快速擴(kuò)容 100 倍后,你會(huì)發(fā)現(xiàn)你的數(shù)據(jù)庫(kù)成為了瓶頸。尤其是關(guān)系數(shù)據(jù)庫(kù),比如 MySQL 的存儲(chǔ)服務(wù)是有狀態(tài)的,這往往是高擴(kuò)展的技術(shù)挑戰(zhàn),如果架構(gòu)上沒(méi)有做好提前的規(guī)劃,比如垂直和水平拆分等,就會(huì)涉及到大量的數(shù)據(jù)遷移工作。

從上述分析,可以得出結(jié)論:高擴(kuò)展性一般要考慮服務(wù)集群、數(shù)據(jù)庫(kù)、緩存、消息隊(duì)列、負(fù)載均衡、帶寬、三方服務(wù)等,當(dāng)你系統(tǒng)的流量到達(dá)一個(gè)量級(jí)后,這些都有可能成為你擴(kuò)展性的阻塞因素。

在考量系統(tǒng)擴(kuò)展性的時(shí)候,一般實(shí)用的指標(biāo)如下:

水平擴(kuò)展比例

水平擴(kuò)展比例是指系統(tǒng)增加節(jié)點(diǎn)或者機(jī)器后,系統(tǒng)性能能夠線性提升的比例。比如,如果系統(tǒng)增加了兩倍的機(jī)器,吞吐量也增加了兩倍,那水平擴(kuò)展比例就是 1,高并發(fā)系統(tǒng)一般會(huì)要求水平擴(kuò)展比例盡可能趨向 1,以確保系統(tǒng)在增加負(fù)載時(shí)能夠有效地?cái)U(kuò)展性能。

資源使用效率

資源使用效率是指系統(tǒng)在擴(kuò)展過(guò)程中能夠充分利用新增資源的能力,高并發(fā)系統(tǒng)應(yīng)該能夠有效地利用新增機(jī)器的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等資源,提高系統(tǒng)的整體性能。

高并發(fā)系統(tǒng)的通用解決方案

在了解了什么是高并發(fā)、高并發(fā)的目標(biāo)以及衡量的指標(biāo)后,我們來(lái)一起看看高并發(fā)系統(tǒng)的通用解決方案都有哪些?

在設(shè)計(jì)高并發(fā)系統(tǒng)架構(gòu)時(shí),通用的設(shè)計(jì)方案通常就是指縱向擴(kuò)展和橫向擴(kuò)展兩個(gè)維度。

縱向擴(kuò)展

縱向擴(kuò)展一般包括兩個(gè)方面:

第一,進(jìn)行硬件升級(jí),提升單機(jī)的硬件性能。

通過(guò)增加單臺(tái)服務(wù)器的硬件資源,比如 CPU 核心數(shù)量、內(nèi)存容量、磁盤速度、存儲(chǔ)容量等方式來(lái)提升系統(tǒng)的處理能力,這種方式適用于需要快速響應(yīng)的臨時(shí)需求,但成本很高且有上限。

第二,進(jìn)行軟件優(yōu)化,提升單機(jī)的軟件性能。

通過(guò)對(duì)系統(tǒng)軟件進(jìn)行優(yōu)化來(lái)提高單臺(tái)服務(wù)器的性能,比如優(yōu)化算法、減少不必要的計(jì)算、提高數(shù)據(jù)庫(kù)查詢效率等手段,這種方式不需要額外的硬件投入,但是會(huì)對(duì)系統(tǒng)的架構(gòu)和代碼進(jìn)行比較大的改動(dòng)。

橫向擴(kuò)展

縱向擴(kuò)展的目標(biāo)和關(guān)注點(diǎn)在單臺(tái)機(jī)器的維度,但是單臺(tái)機(jī)器的性能總是存在上限的,所以在對(duì)高并發(fā)系統(tǒng)進(jìn)行設(shè)計(jì)的時(shí)候,還需要重點(diǎn)考慮橫向擴(kuò)展的方式,來(lái)提高高并發(fā)的處理能力。

第一,做好集群部署。

將你的系統(tǒng)部署在多臺(tái)服務(wù)器上,通用負(fù)載均衡將用戶請(qǐng)求均勻地分發(fā)到各個(gè)服務(wù)器進(jìn)行處理,這種方式可以通過(guò)添加新的服務(wù)器或者服務(wù)節(jié)點(diǎn)來(lái)提高系統(tǒng)的整體處理能力,適用于負(fù)載均衡比較均勻的場(chǎng)景。

第二,使用分布式微服務(wù)架構(gòu)模式。

將你的系統(tǒng)拆分為多個(gè)獨(dú)立的服務(wù)或者組件模塊,每個(gè)服務(wù)運(yùn)行在獨(dú)立的服務(wù)器上,通過(guò)消息隊(duì)列或者 RPC 的方式進(jìn)行通信和協(xié)作。這種方式可以提高系統(tǒng)的可擴(kuò)展性和容錯(cuò)性,但是也引入了新的挑戰(zhàn),比如服務(wù)之間的依賴關(guān)系、通信成本等。

第三,使用緩存技術(shù)。

使用緩存技術(shù)可以減輕數(shù)據(jù)庫(kù)等服務(wù)端資源的壓力,常見的包括內(nèi)存緩存技術(shù)、分布式緩存技術(shù)等,通用把熱點(diǎn)數(shù)據(jù)緩存在內(nèi)存中,可以極大地提高系統(tǒng)的讀取性能和并發(fā)處理能力。

聊完高并發(fā)系統(tǒng)的通用解決方案之后,我們?cè)卺槍?duì)“三高”分別聊聊對(duì)應(yīng)的解決方案,這些可都是灸哥的經(jīng)驗(yàn)干貨,歡迎交流!

高性能的解決方案

在高并發(fā)系統(tǒng),高性能是至關(guān)重要的,它直接影響著系統(tǒng)的響應(yīng)速度和用戶體驗(yàn),接下來(lái)我們就可以看看根據(jù)我過(guò)往的經(jīng)驗(yàn)總結(jié)了一些關(guān)于高性能的具體解決方案。

集群部署與負(fù)載均衡

將系統(tǒng)部署在多臺(tái)服務(wù)器上,通過(guò)負(fù)載均衡將請(qǐng)求均勻分發(fā)到各個(gè)服務(wù)器節(jié)點(diǎn)上進(jìn)行處理,這樣可以分擔(dān)單臺(tái)服務(wù)器的壓力,提高系統(tǒng)的并發(fā)處理能力和整體性能。

數(shù)據(jù)庫(kù)優(yōu)化

針對(duì)數(shù)據(jù)庫(kù)優(yōu)化主要以下方面:第一,將數(shù)據(jù)庫(kù)的讀寫操作分離,分配到不同的服務(wù)器上進(jìn)行處理,減輕數(shù)據(jù)庫(kù)的讀寫壓力,提高系統(tǒng)的并發(fā)讀能力;第二,對(duì)頻繁查詢的字段添加索引,減少查詢時(shí)間,合理使用聯(lián)合索引,減少索引冗余和不必要的查詢開銷;第三,優(yōu)化數(shù)據(jù)庫(kù)查詢語(yǔ)句,避免全表掃描和多表聯(lián)合查詢,減少數(shù)據(jù)庫(kù)的查詢時(shí)間和資源消耗。

使用緩存技術(shù)

緩存技術(shù)一般包括:第一,使用內(nèi)存緩存技術(shù)(如 Redis、Memcached)緩存熱點(diǎn)數(shù)據(jù)或計(jì)算結(jié)果,減少對(duì)數(shù)據(jù)庫(kù)的頻繁查詢,提高系統(tǒng)的響應(yīng)速度;第二,使用分布式緩存(如 Redis Cluster、Hazelcast)將緩存數(shù)據(jù)分布在多個(gè)節(jié)點(diǎn)上,提高系統(tǒng)的并發(fā)讀取和寫入能力,保證緩存的可用性和一致性。

異步處理

在高并發(fā)系統(tǒng)中,異步處理方案包括:第一,使用消息隊(duì)列將耗時(shí)的業(yè)務(wù)邏輯或數(shù)據(jù)處理操作放入消息隊(duì)列中,由后臺(tái)任務(wù)處理器異步執(zhí)行,減少用戶請(qǐng)求的等待時(shí)間,提高系統(tǒng)的并發(fā)處理能力和吞吐量;第二,使用延時(shí)任務(wù)將一些非實(shí)時(shí)的任務(wù)延遲處理,如數(shù)據(jù)統(tǒng)計(jì)、日志記錄等,降低對(duì)系統(tǒng)性能的影響,提高系統(tǒng)的響應(yīng)速度。

多級(jí)緩存策略

使用多級(jí)緩存策略,包括本地緩存、分布式緩存和靜態(tài)資源 CDN 等,根據(jù)數(shù)據(jù)的訪問(wèn)頻率和使用場(chǎng)景,將數(shù)據(jù)緩存在不同的緩存層中,提高數(shù)據(jù)的訪問(wèn)速度和命中率。

優(yōu)化網(wǎng)絡(luò)和 IO 操作

將多個(gè)小的網(wǎng)絡(luò)請(qǐng)求合并為一個(gè)大的請(qǐng)求,減少網(wǎng)絡(luò)通信的次數(shù),降低網(wǎng)絡(luò)延遲和帶寬消耗。使用異步IO技術(shù)或非阻塞IO技術(shù),減少IO操作的等待時(shí)間,提高系統(tǒng)的并發(fā)讀取和寫入能力。

并發(fā)編程和線程池

使用多線程、協(xié)程或事件驅(qū)動(dòng)等并發(fā)編程模型,充分利用多核處理器和系統(tǒng)資源,提高系統(tǒng)的并發(fā)處理能力。使用線程池來(lái)管理和復(fù)用線程資源,避免線程創(chuàng)建和銷毀的開銷,提高系統(tǒng)的并發(fā)處理效率和性能穩(wěn)定性。

JVM 調(diào)優(yōu)

針對(duì)Java應(yīng)用程序,進(jìn)行JVM調(diào)優(yōu),包括調(diào)整堆內(nèi)存大小、垃圾回收器的選擇和調(diào)優(yōu)、JVM參數(shù)的優(yōu)化等,以提高Java應(yīng)用程序的性能和穩(wěn)定性。

代碼邏輯優(yōu)化

優(yōu)化系統(tǒng)中頻繁使用的算法和數(shù)據(jù)結(jié)構(gòu),減少不必要的計(jì)算和存儲(chǔ)開銷,提高系統(tǒng)的計(jì)算效率和資源利用率。以及可以將大概率阻斷執(zhí)行流程的判斷邏輯前置、For 循環(huán)的計(jì)算邏輯優(yōu)化等。

水平擴(kuò)展和分布式架構(gòu)

使用分布式架構(gòu)和微服務(wù)架構(gòu),將系統(tǒng)拆分成多個(gè)獨(dú)立的服務(wù)或模塊,每個(gè)服務(wù)運(yùn)行在獨(dú)立的服務(wù)器上,并通過(guò)消息隊(duì)列或RPC進(jìn)行通信和協(xié)作。這樣可以提高系統(tǒng)的可擴(kuò)展性和容錯(cuò)性,實(shí)現(xiàn)分布式處理和并行計(jì)算。

限流方案

根據(jù)業(yè)務(wù)場(chǎng)景考慮是否可以限流,包括從前端開始限流、Nginx 接入層限流、服務(wù)端服務(wù)限流等。

預(yù)計(jì)算和預(yù)熱

針對(duì)一些計(jì)算量較大或者訪問(wèn)頻率較高的數(shù)據(jù),可以提前進(jìn)行計(jì)算或者加載到緩存中,減少用戶請(qǐng)求時(shí)的計(jì)算時(shí)間和等待時(shí)間。

池化技術(shù)

各種池化技術(shù)的使用以及池大小的優(yōu)化配置,比如 HTTP 請(qǐng)求池、線程池、數(shù)據(jù)庫(kù)連接池、Redis 連接池等。

以上這些解決方案均來(lái)自于日常實(shí)踐經(jīng)驗(yàn)的總結(jié),在具體的業(yè)務(wù)需求和系統(tǒng)特點(diǎn)中,要根據(jù)實(shí)際情況來(lái)進(jìn)行調(diào)整和優(yōu)化,多種方案的結(jié)合使用,同時(shí)綜合考慮負(fù)載情況、資源利用率、用戶體驗(yàn)和成本效益等因素,以實(shí)現(xiàn)高性能的高并發(fā)系統(tǒng)。

高可用的解決方案

在高并發(fā)系統(tǒng)中,系統(tǒng)的可用性直接影響到用戶體驗(yàn)和業(yè)務(wù)連續(xù)性。為了確保系統(tǒng)在面對(duì)各種意外情況時(shí)能夠保持穩(wěn)定運(yùn)行,需要采取一系列高可用的解決方案。

負(fù)載均衡器

使用負(fù)載均衡器將流量分發(fā)到多臺(tái)服務(wù)器上,以實(shí)現(xiàn)請(qǐng)求的均衡分布和減輕單點(diǎn)故障的壓力。當(dāng)某臺(tái)服務(wù)器發(fā)生故障時(shí),負(fù)載均衡器可以自動(dòng)將流量重定向到其他可用的服務(wù)器上,保證系統(tǒng)的正常運(yùn)行。

容災(zāi)備份

部署容災(zāi)備份系統(tǒng),將系統(tǒng)的數(shù)據(jù)和服務(wù)備份到不同的地理位置或者數(shù)據(jù)中心。當(dāng)主要數(shù)據(jù)中心發(fā)生故障時(shí),可以快速切換到備份系統(tǒng),確保系統(tǒng)的持續(xù)可用性。

故障轉(zhuǎn)移和主備切換

在系統(tǒng)中設(shè)置故障檢測(cè)機(jī)制,及時(shí)發(fā)現(xiàn)服務(wù)器或服務(wù)的故障,并實(shí)施故障轉(zhuǎn)移和主備切換。例如,可以使用心跳檢測(cè)來(lái)監(jiān)控服務(wù)器的健康狀態(tài),當(dāng)服務(wù)器宕機(jī)或服務(wù)異常時(shí),自動(dòng)切換到備用服務(wù)器或備用服務(wù)。

服務(wù)治理

使用服務(wù)治理框架來(lái)管理系統(tǒng)中的各個(gè)服務(wù)實(shí)例,包括注冊(cè)發(fā)現(xiàn)、健康檢查、負(fù)載均衡、故障恢復(fù)等功能。通過(guò)服務(wù)治理框架,可以實(shí)現(xiàn)對(duì)服務(wù)實(shí)例的動(dòng)態(tài)管理和調(diào)度,確保系統(tǒng)的高可用性和負(fù)載均衡。

接口超時(shí)和重試策略

在系統(tǒng)的接口層設(shè)置超時(shí)時(shí)間和重試策略,對(duì)于長(zhǎng)時(shí)間未響應(yīng)的請(qǐng)求進(jìn)行超時(shí)處理,并自動(dòng)進(jìn)行重試。這樣可以避免因?yàn)閱蝹€(gè)請(qǐng)求的超時(shí)或失敗導(dǎo)致系統(tǒng)整體的不可用。

降級(jí)和熔斷

當(dāng)系統(tǒng)出現(xiàn)異常或負(fù)載過(guò)高時(shí),可以通過(guò)降級(jí)和熔斷來(lái)保護(hù)核心服務(wù),犧牲非核心服務(wù)或者關(guān)閉部分功能,以保證系統(tǒng)的正常運(yùn)行。例如,可以暫時(shí)關(guān)閉某些功能模塊或者限制用戶訪問(wèn)速度,以減輕系統(tǒng)的壓力。

限流和隊(duì)列緩沖

對(duì)系統(tǒng)的流量進(jìn)行限制和緩沖,防止突發(fā)流量導(dǎo)致系統(tǒng)崩潰或者雪崩??梢酝ㄟ^(guò)限流算法和消息隊(duì)列來(lái)控制請(qǐng)求的處理速度,以穩(wěn)定系統(tǒng)的運(yùn)行狀態(tài)。

灰度發(fā)布和回滾策略

采用灰度發(fā)布的方式逐步更新系統(tǒng)版本,先在少量用戶或服務(wù)器上進(jìn)行測(cè)試,再逐步擴(kuò)大范圍,以減少系統(tǒng)更新對(duì)整體運(yùn)行的影響。同時(shí),設(shè)置回滾策略,當(dāng)新版本出現(xiàn)問(wèn)題時(shí),可以快速回滾到上一個(gè)穩(wěn)定版本,保證系統(tǒng)的可用性。

監(jiān)控和報(bào)警

部署監(jiān)控和報(bào)警系統(tǒng),實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的運(yùn)行狀態(tài)和性能指標(biāo),并設(shè)置預(yù)警規(guī)則和報(bào)警機(jī)制,及時(shí)發(fā)現(xiàn)并處理潛在的故障和問(wèn)題,保證系統(tǒng)的穩(wěn)定運(yùn)行。

災(zāi)備演練

類似當(dāng)前的“混沌工程”,對(duì)系統(tǒng)進(jìn)行一些破壞性手段,觀察局部故障是否會(huì)引起可用性問(wèn)題。

這些解決方案可以結(jié)合使用,根據(jù)系統(tǒng)的需求和特點(diǎn)進(jìn)行調(diào)整和優(yōu)化,以提高系統(tǒng)的可用性和穩(wěn)定性。在設(shè)計(jì)和實(shí)現(xiàn)高可用系統(tǒng)時(shí),需要綜合考慮系統(tǒng)的容錯(cuò)能力、故障恢復(fù)能力、用戶體驗(yàn)和成本效益等因素,選擇最合適的解決方案。

高擴(kuò)展的解決方案

在高并發(fā)系統(tǒng)中,要求確保系統(tǒng)在面對(duì)不斷增長(zhǎng)的用戶請(qǐng)求時(shí),能夠靈活地?cái)U(kuò)展資源,以滿足需求并保持穩(wěn)定性。

分層架構(gòu)設(shè)計(jì)

采用分層架構(gòu)設(shè)計(jì),將系統(tǒng)劃分為多個(gè)層次,如前端、應(yīng)用服務(wù)器、緩存層、數(shù)據(jù)庫(kù)等,每個(gè)層次都可以根據(jù)需要獨(dú)立進(jìn)行擴(kuò)展。這種設(shè)計(jì)能夠有效地降低系統(tǒng)的耦合度,提高系統(tǒng)的靈活性和可擴(kuò)展性。

無(wú)狀態(tài)服務(wù)設(shè)計(jì)

將系統(tǒng)設(shè)計(jì)成無(wú)狀態(tài)的服務(wù)架構(gòu),使得每個(gè)請(qǐng)求都可以獨(dú)立處理,而不依賴于之前的狀態(tài)信息。這樣可以方便地進(jìn)行水平擴(kuò)展,通過(guò)增加服務(wù)器節(jié)點(diǎn)來(lái)處理更多的請(qǐng)求,而無(wú)需考慮狀態(tài)同步和數(shù)據(jù)一致性的問(wèn)題。

服務(wù)集群化

將相同類型的服務(wù)部署在一個(gè)集群中,并通過(guò)負(fù)載均衡器來(lái)分發(fā)請(qǐng)求,實(shí)現(xiàn)服務(wù)的水平擴(kuò)展。通過(guò)增加集群中的節(jié)點(diǎn)數(shù)量,可以線性地提高系統(tǒng)的處理能力,以應(yīng)對(duì)不斷增長(zhǎng)的用戶請(qǐng)求。

數(shù)據(jù)庫(kù)的分庫(kù)分表

對(duì)數(shù)據(jù)庫(kù)進(jìn)行分庫(kù)分表設(shè)計(jì),將數(shù)據(jù)按照一定的規(guī)則分散存儲(chǔ)在多個(gè)數(shù)據(jù)庫(kù)實(shí)例和數(shù)據(jù)表中。這樣可以有效地減少單個(gè)數(shù)據(jù)庫(kù)的負(fù)載壓力,并提高數(shù)據(jù)的讀寫并發(fā)性能。同時(shí),可以通過(guò)數(shù)據(jù)庫(kù)分片技術(shù)實(shí)現(xiàn)數(shù)據(jù)的水平擴(kuò)展,以支持更大規(guī)模的數(shù)據(jù)存儲(chǔ)和處理需求。

緩存技術(shù)應(yīng)用

使用緩存技術(shù)來(lái)減輕數(shù)據(jù)庫(kù)的壓力,提高系統(tǒng)的讀取性能和響應(yīng)速度??梢詫衢T數(shù)據(jù)和頻繁訪問(wèn)的數(shù)據(jù)緩存到內(nèi)存中,減少數(shù)據(jù)庫(kù)的訪問(wèn)次數(shù)。同時(shí),采用分布式緩存技術(shù),將緩存數(shù)據(jù)分布存儲(chǔ)在多個(gè)節(jié)點(diǎn)上,以提高緩存的容量和可擴(kuò)展性。

消息隊(duì)列應(yīng)用

引入消息隊(duì)列系統(tǒng)來(lái)實(shí)現(xiàn)異步處理和削峰填谷,將請(qǐng)求和任務(wù)進(jìn)行解耦,并通過(guò)消息隊(duì)列進(jìn)行緩沖和調(diào)度。這樣可以有效地平滑系統(tǒng)的負(fù)載波動(dòng),提高系統(tǒng)的穩(wěn)定性和可擴(kuò)展性。

高并發(fā)系統(tǒng)的設(shè)計(jì)方案雖然有通用的解決方案,以及文中針對(duì)高性能、高可用、高擴(kuò)展的對(duì)應(yīng)解決方案,這些在你涉及高并發(fā)系統(tǒng)時(shí),總體的設(shè)計(jì)思路和可借鑒的解決方案基本都是類似的。但是對(duì)應(yīng)到你具體的業(yè)務(wù)場(chǎng)景中,落地方案是肯定會(huì)存在差異的。作為架構(gòu)師的你,要千萬(wàn)記住架構(gòu)設(shè)計(jì)的三原則:簡(jiǎn)單、合適和演進(jìn)。這里對(duì)三原則就不做過(guò)多介紹了,有興趣的可以翻看我之前的架構(gòu)系統(tǒng)文章。

高并發(fā)編程的核心理念主要包括以下幾個(gè)方面:

1、分布式:將系統(tǒng)拆分成多個(gè)獨(dú)立的部分,每個(gè)部分可以獨(dú)立處理請(qǐng)求,從而提高整個(gè)系統(tǒng)的并發(fā)能力。

2、異步編程:通過(guò)異步編程可以讓線程不必等待某些操作的結(jié)果就可以繼續(xù)執(zhí)行,從而提高并發(fā)能力。

3、非阻塞編程:非阻塞編程可以讓線程不必等待某些操作的結(jié)果,而是繼續(xù)執(zhí)行其他任務(wù),從而提高系統(tǒng)的響應(yīng)速度和吞吐量。

4、緩存優(yōu)化:通過(guò)緩存可以減少對(duì)后端系統(tǒng)的訪問(wèn),從而降低系統(tǒng)的負(fù)載,提高系統(tǒng)的并發(fā)能力。

5、負(fù)載均衡:通過(guò)負(fù)載均衡可以將請(qǐng)求分發(fā)到多個(gè)處理節(jié)點(diǎn)上,從而提高整個(gè)系統(tǒng)的并發(fā)能力。

6、無(wú)狀態(tài)服務(wù):無(wú)狀態(tài)服務(wù)可以減少服務(wù)器對(duì)客戶端的狀態(tài)管理,從而提高系統(tǒng)的并發(fā)能力。

7、消息隊(duì)列:通過(guò)消息隊(duì)列可以將任務(wù)異步處理,從而提高系統(tǒng)的并發(fā)能力。

隨著當(dāng)今技術(shù)的不斷發(fā)展和業(yè)務(wù)的不斷變化,我們還要持續(xù)不斷地學(xué)習(xí)和探索,不斷優(yōu)化和完善高并發(fā)系統(tǒng)架構(gòu)設(shè)計(jì),以適應(yīng)不斷變化的需求和挑戰(zhàn),實(shí)現(xiàn)高并發(fā)系統(tǒng)的持續(xù)穩(wěn)定運(yùn)行和持續(xù)發(fā)展。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉