偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

高并發(fā)架構(gòu)設(shè)計(jì)(一)—設(shè)計(jì)一個(gè)高并發(fā)系統(tǒng)的關(guān)鍵點(diǎn)

開(kāi)發(fā) 架構(gòu)
現(xiàn)在用互聯(lián)網(wǎng)的人越來(lái)越多,很多app、網(wǎng)站、系統(tǒng)承載的都是高并發(fā)請(qǐng)求,可能高峰期每秒并發(fā)量幾千,很正常的。

[[396453]]

一、為啥會(huì)有高并發(fā)

現(xiàn)在用互聯(lián)網(wǎng)的人越來(lái)越多,很多app、網(wǎng)站、系統(tǒng)承載的都是高并發(fā)請(qǐng)求,可能高峰期每秒并發(fā)量幾千,很正常的。尤其是電商App,如果是雙十一之類的,每秒并發(fā)幾萬(wàn)幾十萬(wàn)都有可能,高并發(fā)訪問(wèn)帶來(lái)的問(wèn)題是系統(tǒng)和數(shù)據(jù)庫(kù)扛不住,容易宕機(jī),要知道數(shù)據(jù)庫(kù)支撐到每秒并發(fā)兩三千的時(shí)候,基本就快完了,數(shù)據(jù)庫(kù)如果瞬間承載每秒5000,8000,甚至上萬(wàn)的并發(fā),一定會(huì)宕機(jī),比如mysql就壓根兒扛不住這么高的并發(fā)量。

那么如此之高的并發(fā)量,加上原本就如此之復(fù)雜的業(yè)務(wù),我們?cè)撊绾卧O(shè)計(jì)一個(gè)可以支持高并發(fā)訪問(wèn)的系統(tǒng)呢,主要從以下幾點(diǎn)去考慮:

  • 系統(tǒng)拆分
  • 使用緩存
  • 引入MQ
  • 分庫(kù)分表
  • 讀寫(xiě)分離

二、設(shè)計(jì)高并發(fā)系統(tǒng)的關(guān)鍵點(diǎn)

2.1、系統(tǒng)拆分

將一個(gè)大的系統(tǒng)拆分為基于微服務(wù)架構(gòu)的多個(gè)子系統(tǒng),技術(shù)落地選擇使用SpringCloud來(lái)做,然后每個(gè)子系統(tǒng)連一個(gè)數(shù)據(jù)庫(kù),這樣本來(lái)就一個(gè)庫(kù),現(xiàn)在多個(gè)數(shù)據(jù)庫(kù),這樣也可以扛高并發(fā)。

2.2、使用緩存

緩存,一定要用緩存。大部分的高并發(fā)場(chǎng)景,都是讀多寫(xiě)少,我們完全可以在數(shù)據(jù)庫(kù)和緩存里都寫(xiě)一份,然后讀的時(shí)候大量走緩存,可以引入Redis作為分布式緩存的技術(shù)解決方案,redis單機(jī)就支持每秒幾萬(wàn)的并發(fā),在集群情況下更是可以達(dá)到每秒幾十萬(wàn)的并發(fā)。所以我們要考慮項(xiàng)目里那些承載主要請(qǐng)求的讀場(chǎng)景,怎么用緩存來(lái)抗高并發(fā),同時(shí)也得處理好【緩存雪崩】、【緩存穿透】、【緩存擊穿】這些問(wèn)題

2.3、引入MQ

MQ,一定得用上MQ。因?yàn)橄到y(tǒng)還是會(huì)出現(xiàn)高并發(fā)寫(xiě)的場(chǎng)景,比如說(shuō)一個(gè)業(yè)務(wù)操作里要頻繁搞數(shù)據(jù)庫(kù)幾十次,增刪改增刪改,那高并發(fā)訪問(wèn)的情況下絕對(duì)搞掛數(shù)據(jù)庫(kù),這個(gè)時(shí)候就可以考慮用MQ去削峰,將大量的寫(xiě)請(qǐng)求先灌入MQ里,排隊(duì)慢慢玩兒,后邊系統(tǒng)消費(fèi)后慢慢寫(xiě),控制在數(shù)據(jù)庫(kù)承載范圍之內(nèi)。所以我們要考慮項(xiàng)目里那些承載復(fù)雜寫(xiě)業(yè)務(wù)邏輯的場(chǎng)景里,如何用MQ來(lái)異步寫(xiě),提升并發(fā)性。MQ單機(jī)可以扛得起幾萬(wàn)并發(fā)。MQ的技術(shù)選型可以選擇用rabbitMq或者Kafka。當(dāng)然了,系統(tǒng)引入MQ之后,也會(huì)導(dǎo)致整個(gè)系統(tǒng)的可用性降低,系統(tǒng)復(fù)雜度提高,系統(tǒng)引入的外部依賴越多,越容易掛掉。所以引入MQ后,要考慮【如何保證消息隊(duì)列的高可用】、【如何保證消息沒(méi)有重復(fù)消費(fèi)】、【如何處理消息丟失的情況】、【如何保證消息傳遞的順序性】等問(wèn)題,引入MQ有很多好處,但是也得針對(duì)它帶來(lái)的壞處做各種額外的技術(shù)方案和架構(gòu)來(lái)規(guī)避掉。

2.4、分庫(kù)分表

分庫(kù)分表,可能到了最后數(shù)據(jù)庫(kù)層面還是免不了抗高并發(fā)的要求,那么就將一個(gè)數(shù)據(jù)庫(kù)拆分為多個(gè)庫(kù),多個(gè)庫(kù)來(lái)扛更高的并發(fā);然后將一個(gè)表拆分為多個(gè)表,每個(gè)表的數(shù)據(jù)量保持在一定范圍內(nèi),提高sql跑的性能。推薦使用ShardingSphere作為分庫(kù)分表的技術(shù)解決方案

2.5、讀寫(xiě)分離

讀寫(xiě)分離,這個(gè)就是說(shuō)大部分時(shí)候數(shù)據(jù)庫(kù)可能也是讀多寫(xiě)少,沒(méi)必要所有請(qǐng)求都集中在一個(gè)庫(kù)上,可以搞個(gè)主從架構(gòu),主庫(kù)寫(xiě)入,從庫(kù)讀取,搞一個(gè)讀寫(xiě)分離。讀流量太多的時(shí)候,還可以加更多的從庫(kù)。

 

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2023-09-08 08:10:48

2023-09-08 08:22:30

2023-11-10 16:18:59

2019-07-31 07:36:12

架構(gòu)運(yùn)維技術(shù)

2023-12-12 09:06:06

2024-08-16 10:11:24

2017-11-27 08:50:29

架構(gòu)數(shù)據(jù)存儲(chǔ)

2025-06-04 03:15:00

高并發(fā)短鏈系統(tǒng)

2025-02-20 00:01:00

2024-05-27 08:32:45

2021-05-24 09:28:41

軟件開(kāi)發(fā) 技術(shù)

2012-12-27 10:31:43

開(kāi)發(fā)設(shè)計(jì)架構(gòu)設(shè)計(jì)

2022-06-28 18:05:36

英特爾

2025-04-29 02:00:00

高并發(fā)系統(tǒng)場(chǎng)景

2020-07-27 07:53:36

高并發(fā)流量系統(tǒng)

2017-12-12 14:51:15

分布式緩存設(shè)計(jì)

2024-08-16 14:01:00

2012-12-27 10:37:21

開(kāi)發(fā)設(shè)計(jì)架構(gòu)設(shè)計(jì)電子商店

2009-06-16 14:43:23

大型網(wǎng)站系統(tǒng)架構(gòu)

2020-06-09 21:08:24

Nginx高并發(fā)架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)