更新時(shí)間:2021-08-13 10:52:58 來源:動(dòng)力節(jié)點(diǎn) 瀏覽917次
分而治之是一種常見的高并發(fā)系統(tǒng)設(shè)計(jì)方法,采用分布式部署的方式把流量分流開,讓每個(gè)服務(wù)器都承擔(dān)一部分并發(fā)和流量。
通過購買性能更好的硬件來提升系統(tǒng)的并發(fā)處理能力,比方說目前系統(tǒng) 4 核 4G 每秒可以處理 200 次請(qǐng)求,那么如果要處理 400 次請(qǐng)求呢?很簡(jiǎn)單,我們把機(jī)器的硬件提升到 8 核 8G(硬件資源的提升可能不是線性的,這里僅為參考)。
使用緩存來提高系統(tǒng)的性能,就好比用“拓寬河道”的方式抵抗高并發(fā)大流量的沖擊
在某些場(chǎng)景下,未處理完成之前我們可以讓請(qǐng)求先返回,在數(shù)據(jù)準(zhǔn)備好之后再通知請(qǐng)求方,這樣可以在單位時(shí)間內(nèi)處理更多的請(qǐng)求
什么是同步
以方法調(diào)用為例,同步調(diào)用代表調(diào)用方要阻塞等待被調(diào)用方法中的邏輯執(zhí)行完成。這種方式下,當(dāng)被調(diào)用方法響應(yīng)時(shí)間較長(zhǎng)時(shí),會(huì)造成調(diào)用方長(zhǎng)久的阻塞,在高并發(fā)下會(huì)造成整體系統(tǒng)性能下降甚至發(fā)生雪崩。
什么是異步
異步調(diào)用恰恰相反,調(diào)用方不需要等待方法邏輯執(zhí)行完成就可以返回執(zhí)行其他的邏輯,在被調(diào)用方法執(zhí)行完畢后再通過回調(diào)、事件通知等方式將結(jié)果反饋給調(diào)用方
高并發(fā)原則
無狀態(tài)設(shè)計(jì):因?yàn)橛袪顟B(tài)可能涉及鎖操作,鎖又可能導(dǎo)致并發(fā)的串行化
保持合理的粒度:無論拆分還是服務(wù)化,其實(shí)就是服務(wù)粒度控制,控制粒度為了分散請(qǐng)求提高并發(fā),或?yàn)榱藦墓芾淼冉嵌忍岣呖刹傩?/p>
緩存、隊(duì)列、并發(fā)等技巧在高并發(fā)設(shè)計(jì)上可供參考,但需依場(chǎng)景使用
高可用原則
本質(zhì)訴求:高可用就是抵御不確定性,保證系統(tǒng)7*24小時(shí)健康服務(wù)
系統(tǒng)的任何發(fā)布必須具有可回滾能力
系統(tǒng)任何外部依賴必須準(zhǔn)確衡量是否可降級(jí),是否可無損降級(jí),并提供降級(jí)開關(guān)
系統(tǒng)對(duì)外暴露的接口必須配置好限流,限流值必須盡量準(zhǔn)確可靠
業(yè)務(wù)設(shè)計(jì)原則
安全性:防抓取,防刷單、防表單重復(fù)提交,等等等等。
at least 消費(fèi),應(yīng)考慮是否采用冪等設(shè)計(jì)
業(yè)務(wù)流程動(dòng)態(tài)化,業(yè)務(wù)規(guī)則動(dòng)態(tài)化
系統(tǒng)owner負(fù)責(zé)制、人員備份制、值班制
系統(tǒng)文檔化
后臺(tái)操作可追溯
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"高并發(fā)系統(tǒng)設(shè)計(jì)方法",希望對(duì)大家有幫助,想了解更多可查看Java在線學(xué)習(xí)。動(dòng)力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對(duì)沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識(shí),讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)