自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何設(shè)計(jì)一個(gè)支撐高并發(fā)大流量的系統(tǒng)?這次我將設(shè)計(jì)思路分享給大家!

開(kāi)發(fā) 架構(gòu)
作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。自開(kāi)源半年多以來(lái),已成功為十幾家中小型企業(yè)提供了精準(zhǔn)定時(shí)調(diào)度方案,經(jīng)受住了生產(chǎn)環(huán)境的考驗(yàn)。

[[335020]]

作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。自開(kāi)源半年多以來(lái),已成功為十幾家中小型企業(yè)提供了精準(zhǔn)定時(shí)調(diào)度方案,經(jīng)受住了生產(chǎn)環(huán)境的考驗(yàn)。為使更多童鞋受益,現(xiàn)給出開(kāi)源框架地址:https://github.com/sunshinelyz/mykit-delay

寫在前面

最近不少小伙伴們都在問(wèn)我:高并發(fā)專題我學(xué)了不少文章了,但是如何設(shè)計(jì)一個(gè)高并發(fā)的系統(tǒng)我還是一臉懵逼!這個(gè)問(wèn)題怎么解決呢?其實(shí),相信不只是問(wèn)我的這些小伙伴有這個(gè)困惑,就連工作(入坑)了好幾年的開(kāi)發(fā)人員也都有這樣的困惑:我學(xué)習(xí)了很多的高并發(fā)課程,也看了不少的高大上的文章,可就是不知道怎么去設(shè)計(jì)一個(gè)支撐高并發(fā)大流量的系統(tǒng)。針對(duì)小伙伴們的疑惑,這里,我就把一些設(shè)計(jì)高并發(fā)大流量的常規(guī)思路分享給大家,不一定完全正確,設(shè)計(jì)高并發(fā)大流量系統(tǒng)本來(lái)就是一個(gè)仁者見(jiàn)仁、智者見(jiàn)智的事情,只要是符合自身業(yè)務(wù)場(chǎng)景的架構(gòu)思路,都是好的架構(gòu)思路,架構(gòu)本身來(lái)說(shuō)就是沒(méi)有一個(gè)完全正確的架構(gòu),而是盡量符合當(dāng)時(shí)自身的業(yè)務(wù)場(chǎng)景,并且能夠良好的支撐業(yè)務(wù)的負(fù)載。

高并發(fā)架構(gòu)相關(guān)概念

什么是并發(fā)?

并發(fā)是指并發(fā)的訪問(wèn),也就是某個(gè)時(shí)間點(diǎn),有多少個(gè)訪問(wèn)同時(shí)到來(lái);

通常如果一個(gè)系統(tǒng)的日PV在千萬(wàn)以上,有可能是一個(gè)高并發(fā)的系統(tǒng),這里需要注意的是:只是有可能是一個(gè)高并發(fā)的系統(tǒng),不一定是一個(gè)高并發(fā)的系統(tǒng)。

并發(fā)數(shù)和QPS是不同的概念,一般說(shuō)QPS會(huì)說(shuō)多少并發(fā)用戶下QPS,當(dāng)QPS相同時(shí),并發(fā)用戶數(shù)越大,網(wǎng)站并發(fā)處理能力越好。當(dāng)并發(fā)用戶數(shù)過(guò)大時(shí),會(huì)造成進(jìn)程(線程)頻繁切換,反正真正用于處理請(qǐng)求的時(shí)間變少,每秒能夠處理的請(qǐng)求數(shù)反而變少,同時(shí)用戶的請(qǐng)求等待時(shí)間也會(huì)變大。找到最佳線程數(shù)能夠讓web系統(tǒng)更穩(wěn)定,效率更高。

并發(fā)數(shù) = QPS*平均響應(yīng)時(shí)間

高并發(fā)具體關(guān)心什么?

QPS: 每秒請(qǐng)求或查詢的數(shù)量,在互聯(lián)網(wǎng)領(lǐng)域,指每秒響應(yīng)請(qǐng)求數(shù);

吞吐量: 單位時(shí)間內(nèi)處理的請(qǐng)求量(通常由QPS與并發(fā)數(shù)決定);

響應(yīng)時(shí)間: 從請(qǐng)求發(fā)出到收到響應(yīng)花費(fèi)的時(shí)間,例如一個(gè)系統(tǒng)處理一個(gè)HTTP請(qǐng)求需要100ms,這個(gè)100ms就是系統(tǒng)的響應(yīng)時(shí)間;

PV: 綜合瀏覽量,即頁(yè)面瀏覽量或者點(diǎn)擊量,一個(gè)訪客在24小時(shí)內(nèi)訪問(wèn)的頁(yè)面數(shù)量;

UV: 獨(dú)立訪客 ,即一定時(shí)間范圍內(nèi)相同訪客多次訪問(wèn)網(wǎng)站,只計(jì)算為一個(gè)獨(dú)立的訪客;

帶寬: 計(jì)算帶寬大小需要關(guān)注兩個(gè)指標(biāo),峰值流量和頁(yè)面的平均大小 ;

日網(wǎng)站帶寬可以使用下面的公式來(lái)粗略計(jì)算:

  1. 日網(wǎng)站帶寬=pv/統(tǒng)計(jì)時(shí)間(換算到秒)*平均頁(yè)面大?。▎挝籯B)*8 

峰值一般是平均值的倍數(shù);

QPS不等于并發(fā)連接數(shù),QPS是每秒HTTP請(qǐng)求數(shù)量,并發(fā)連接數(shù)是系統(tǒng)同時(shí)處理的請(qǐng)求數(shù)量;

  1. 峰值每秒請(qǐng)求數(shù)(QPS) = (總PV數(shù) * 80%) /(6小時(shí)秒數(shù) * 20%) 

壓力測(cè)試: 測(cè)試能承受的最大并發(fā),測(cè)試最大承受的QPS值。

測(cè)試工具(ab):目標(biāo)是URL,可以創(chuàng)建多個(gè)訪問(wèn)線程對(duì)同一個(gè)URL進(jìn)行訪問(wèn)(Nginx);

ab的使用: 模擬并發(fā)請(qǐng)求100次(100個(gè)人),總共請(qǐng)求5000次(每個(gè)人請(qǐng)求5000次)

  1. ab -c 100 -n 5000 待測(cè)試網(wǎng)站(內(nèi)存和網(wǎng)絡(luò)不超過(guò)最高限度的75%) 

QPS達(dá)到50:一般的服務(wù)器就可以應(yīng)付;

QPS達(dá)到100: 假設(shè)關(guān)系型數(shù)據(jù)庫(kù)的每次請(qǐng)求在0.01秒完成(理想),假設(shè)單頁(yè)面只有一個(gè)SQL查詢,那么100QPS意味著1秒中完成100次請(qǐng)求,但此時(shí)我們不能保證數(shù)據(jù)庫(kù)查詢能完成100次;

方案:數(shù)據(jù)庫(kù)緩存層、數(shù)據(jù)庫(kù)的負(fù)載均衡;

QPS達(dá)到800: 假設(shè)我們使用 百兆寬帶,意味著網(wǎng)站出口的實(shí)際帶寬是8M左右,假設(shè)每個(gè)頁(yè)面是有10k,在這個(gè)并發(fā)的條件下,百兆帶寬已經(jīng)被吃完;

方案:CDN加速、負(fù)載均衡

QPS達(dá)到1000: 假設(shè)使用Redis緩存數(shù)據(jù)庫(kù)查詢數(shù)據(jù),每個(gè)頁(yè)面對(duì)Redis請(qǐng)求遠(yuǎn)大于直接對(duì)DB的請(qǐng)求;

Redis的悲觀并發(fā)數(shù)在5W左右,但有可能之前內(nèi)網(wǎng)帶寬已經(jīng)被吃光,表現(xiàn)出不穩(wěn)定;

方案:靜態(tài)HTML緩存

QPS達(dá)到2000: 文件系統(tǒng)訪問(wèn)鎖都成為了災(zāi)難;

方案:做業(yè)務(wù)分離,分布式存儲(chǔ);

高并發(fā)解決方案案例

流量?jī)?yōu)化: 防盜鏈處理(把一些惡意的請(qǐng)求拒之門外)

前端優(yōu)化: 減少HTTP請(qǐng)求、添加異步請(qǐng)求、啟用瀏覽器的緩存和文件壓縮、CDN加速、建立獨(dú)立的圖片服務(wù)器;

服務(wù)端優(yōu)化: 頁(yè)面靜態(tài)化處理、并發(fā)處理、隊(duì)列處理;

數(shù)據(jù)庫(kù)優(yōu)化: 數(shù)據(jù)庫(kù)的緩存、分庫(kù)分表、分區(qū)操作、讀寫分離、負(fù)載均衡

Web服務(wù)器優(yōu)化: 負(fù)載均衡

高并發(fā)下的經(jīng)驗(yàn)公式

通過(guò)QPS和PV計(jì)算部署服務(wù)器的臺(tái)數(shù)

單臺(tái)服務(wù)器每天PV計(jì)算

  1. 公式1:每天總PV = QPS * 3600 * 6 
  2. 公式2:每天總PV = QPS * 3600 * 8 

服務(wù)器計(jì)算

  1. 服務(wù)器數(shù)量 =   ceil( 每天總PV / 單臺(tái)服務(wù)器每天總PV ) 

峰值QPS和機(jī)器計(jì)算公式

原理: 每天80%的訪問(wèn)集中在20%的時(shí)間里,這20%時(shí)間叫做峰值時(shí)間

公式: ( 總PV數(shù) * 80% ) / ( 每天秒數(shù) * 20% ) = 峰值時(shí)間每秒請(qǐng)求數(shù)(QPS)

機(jī)器: 峰值時(shí)間每秒QPS / 單臺(tái)機(jī)器的QPS = 需要的機(jī)器。

本文轉(zhuǎn)載自微信公眾號(hào)「冰河技術(shù)」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系冰河技術(shù)公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 冰河技術(shù)
相關(guān)推薦

2023-09-08 08:10:48

2023-09-08 08:22:30

2023-11-10 16:18:59

2021-04-28 08:52:22

高并發(fā)架構(gòu)設(shè)高并發(fā)系統(tǒng)

2019-07-31 07:36:12

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

2022-10-14 08:29:18

DNS系統(tǒng)地址

2018-09-11 09:25:37

高并發(fā)大流量網(wǎng)站

2019-08-01 08:36:51

緩存系統(tǒng)并發(fā)

2018-09-18 09:38:11

RPC遠(yuǎn)程調(diào)用網(wǎng)絡(luò)通信

2023-12-12 09:06:06

2025-04-29 02:00:00

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

2024-04-24 10:38:22

2024-11-20 13:18:21

2025-02-20 00:01:00

2024-08-27 12:49:20

2020-09-02 07:22:17

JavaScript插件框架

2019-01-24 09:42:55

系統(tǒng)高并發(fā)面試

2019-02-27 09:46:05

數(shù)據(jù)庫(kù)架構(gòu)并發(fā)

2022-10-24 00:51:36

核心系統(tǒng)高可用架構(gòu)

2018-11-15 08:19:47

大流量高并發(fā)限流
點(diǎn)贊
收藏

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