日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

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

互聯(lián)網(wǎng)高并發(fā)設(shè)計(jì)的手段:架構(gòu)、算法、代碼

來源: 責(zé)編: 時(shí)間:2023-11-01 09:19:21 313觀看
導(dǎo)讀性能優(yōu)化目標(biāo)1、縮短響應(yīng)時(shí)間2、提高并發(fā)數(shù)(增加吞吐量)3、讓系統(tǒng)處于合理狀態(tài)圖片性能優(yōu)化手段1、空間換時(shí)間系統(tǒng)時(shí)間是瓶頸: 緩存復(fù)用計(jì)算結(jié)果,降低時(shí)間開銷,因?yàn)閏pu時(shí)間較內(nèi)存容量更加昂貴。2、時(shí)間換空間 數(shù)據(jù)大小

性能優(yōu)化目標(biāo)

1、縮短響應(yīng)時(shí)間xYP28資訊網(wǎng)——每日最新資訊28at.com

2、提高并發(fā)數(shù)(增加吞吐量)xYP28資訊網(wǎng)——每日最新資訊28at.com

3、讓系統(tǒng)處于合理狀態(tài)xYP28資訊網(wǎng)——每日最新資訊28at.com

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

性能優(yōu)化手段

1、空間換時(shí)間

系統(tǒng)時(shí)間是瓶頸: 緩存復(fù)用計(jì)算結(jié)果,降低時(shí)間開銷,因?yàn)閏pu時(shí)間較內(nèi)存容量更加昂貴。xYP28資訊網(wǎng)——每日最新資訊28at.com

2、時(shí)間換空間   

  • 數(shù)據(jù)大小是瓶頸
  • 網(wǎng)絡(luò)傳輸是瓶頸,使用系統(tǒng)時(shí)間換取傳輸?shù)目臻g,使用HTTP的gzip壓縮算法    
  • app的請(qǐng)求分類接口,使用版本號(hào)判斷哪些數(shù)據(jù)更新,只下載更新的數(shù)據(jù)

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

3、找到系統(tǒng)瓶頸

  • 分析系統(tǒng)的業(yè)務(wù)流程,找到關(guān)鍵路徑并分解優(yōu)化
  • 調(diào)用了多少RPC接口,載入多少數(shù)據(jù),是用什么算法,非核心流程是否異步化。

性能優(yōu)化層次

1、架構(gòu)設(shè)計(jì)層次

如何拆分系統(tǒng) 如何使用部分系統(tǒng)整體負(fù)載更加均衡   充分發(fā)揮硬件設(shè)施性能優(yōu)勢(shì)  減少系統(tǒng)內(nèi)部開銷等xYP28資訊網(wǎng)——每日最新資訊28at.com

2、算法邏輯層次

關(guān)注算法選擇是否高效,算法邏輯優(yōu)化,空間時(shí)間優(yōu)化任務(wù)執(zhí)行吃力,使用無鎖數(shù)據(jù)結(jié)構(gòu)。xYP28資訊網(wǎng)——每日最新資訊28at.com

空間換時(shí)間:ThreadLocalxYP28資訊網(wǎng)——每日最新資訊28at.com

時(shí)間換空間:采用壓縮算法壓縮數(shù)據(jù),更復(fù)雜的邏輯減少數(shù)據(jù)傳輸。xYP28資訊網(wǎng)——每日最新資訊28at.com

3、代碼優(yōu)化層次

關(guān)注代碼細(xì)節(jié)優(yōu)化,代碼實(shí)現(xiàn)是否合理,是否創(chuàng)建了過多的對(duì)象,循環(huán)遍歷是否高效,cache使用是否合理 xYP28資訊網(wǎng)——每日最新資訊28at.com

優(yōu)化層次:從整理到細(xì)節(jié),從全局角度到局部視角。xYP28資訊網(wǎng)——每日最新資訊28at.com

代碼優(yōu)化層次(1)xYP28資訊網(wǎng)——每日最新資訊28at.com

  • 循環(huán)遍歷是否合理高效,不要在循環(huán)里調(diào)RPC接口,傳輸分布式緩存 執(zhí)行SQL等
  • 先調(diào)用批量接口組裝好數(shù)據(jù),再循環(huán)處理
  • 代碼邏輯避免生成過多的對(duì)象和無效對(duì)象
  • 輸出Log時(shí)候的log級(jí)別判斷  避免new無效對(duì)象
  • ArrayList、HashMap初始容量設(shè)置是否合理
  • 對(duì)數(shù)據(jù)對(duì)象是否合理重用 比如RPC查到的數(shù)據(jù)能復(fù)用則必須復(fù)用,根據(jù)數(shù)據(jù)訪問特性選擇合適數(shù)據(jù)結(jié)構(gòu),比如讀多寫少考慮  CopyOrWriteArrayList(寫時(shí)copy副本),會(huì)否正確初始化數(shù)據(jù),有些全局共享的數(shù)據(jù),餓漢式模式,在用戶使用之前先初始化好。

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

代碼優(yōu)化層次(2)xYP28資訊網(wǎng)——每日最新資訊28at.com

  • CPU Cache結(jié) 構(gòu)
  • 速度越來越高:內(nèi)存 - >L3->L2->L1多級(jí)緩存
  • 本質(zhì)上內(nèi)存是一個(gè)大的一維數(shù)組,二維數(shù)組在內(nèi)存中按行排列,先存放a[0]行,再存放a[1]行
  • 第一種遍歷方式,是行遍歷,先遍歷完一行再遍歷第二行,符合局部性原理Cache Hit  (緩存命中率高)
  • 第二種遍歷方式,是列遍歷,遍歷完第一列遍歷第二列,由于下一列和 上 一 列的數(shù)組元素在內(nèi)存中并不是連續(xù)的,很可能導(dǎo)致Cache  Miss ( 緩 存 未 命 中 ) , CPU 需要去內(nèi)存載入數(shù)據(jù),速度較CPU    L1Cache的速度降低 了很多(主存100ns,L1  cache  0.5ns)

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

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

數(shù)據(jù)優(yōu)化層次

select count(*)from table where add  time<"2017- 11-0623:59:59"  and  status=0  add  count in(1,2) ORDER BY id ASC;

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

代碼邏輯要適應(yīng)數(shù)據(jù)變化的場(chǎng)景xYP28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

算法優(yōu)化邏輯層次

●用更高效的算法替換現(xiàn)有算法,而不改變其接口xYP28資訊網(wǎng)——每日最新資訊28at.com

● 增量式算法,復(fù)用之前的計(jì)算結(jié)果,比如一個(gè)報(bào)表服務(wù),要從全量數(shù)據(jù)中生成報(bào)表數(shù)據(jù)量很大,但是每次增量的數(shù)據(jù)較少,則可以考慮只計(jì)算增量數(shù)據(jù)和之前計(jì)算結(jié)果合并,這樣處理的數(shù)據(jù)量就小很多xYP28資訊網(wǎng)——每日最新資訊28at.com

● 并發(fā)和鎖的優(yōu)化,讀多寫少的業(yè)務(wù)場(chǎng)景下,基于CAS的LockFree比mutex 性能更好xYP28資訊網(wǎng)——每日最新資訊28at.com

● 當(dāng)系統(tǒng)時(shí)間是瓶頸,采取空間換時(shí)間邏輯算法,分配更多空間節(jié)省系統(tǒng)時(shí)間xYP28資訊網(wǎng)——每日最新資訊28at.com

● 緩存復(fù)用計(jì)算結(jié)果,降低時(shí)間開銷, CPU時(shí)間較內(nèi)存容量更加昂貴xYP28資訊網(wǎng)——每日最新資訊28at.com

● 當(dāng)系統(tǒng)空間容量是瓶頸,采取時(shí)間換空間算法策略xYP28資訊網(wǎng)——每日最新資訊28at.com

● 網(wǎng)絡(luò)傳輸是瓶頸,使用系統(tǒng)時(shí)間換取空間的壓縮, HTTP的gzip 壓縮算法xYP28資訊網(wǎng)——每日最新資訊28at.com

● APP的請(qǐng)求分類接口,使用版本號(hào)判斷哪些數(shù)據(jù)更新,只下載更新的數(shù)據(jù),使用更多的代碼邏輯處理更細(xì)粒 度的數(shù)據(jù)xYP28資訊網(wǎng)——每日最新資訊28at.com

● 并行執(zhí)行,比如一段邏輯調(diào)用了多個(gè)RPC接口,而這些接口之間并沒有數(shù)據(jù)依賴,則可以考慮并行調(diào)用,降低響 應(yīng)時(shí)間xYP28資訊網(wǎng)——每日最新資訊28at.com

● 異步執(zhí)行,分析業(yè)務(wù)流程中的主次流程,把次要流程拆分出來異步執(zhí)行,更進(jìn)一步可以拆分到單獨(dú)的模塊去執(zhí)行, 比如使用消息隊(duì)列,徹底和核心流程解耦,提高核心流程的穩(wěn)定性以及降低響應(yīng)時(shí)間xYP28資訊網(wǎng)——每日最新資訊28at.com

架構(gòu)層次優(yōu)化

● 系統(tǒng)微服務(wù)化xYP28資訊網(wǎng)——每日最新資訊28at.com

● 無狀態(tài)化設(shè)計(jì),動(dòng)態(tài)水平彈性擴(kuò)展xYP28資訊網(wǎng)——每日最新資訊28at.com

● 調(diào)用鏈路梳理,熱點(diǎn)數(shù)據(jù)盡量靠近用戶xYP28資訊網(wǎng)——每日最新資訊28at.com

● 分布式Cache 、 多級(jí)多類型緩存xYP28資訊網(wǎng)——每日最新資訊28at.com

● 提前拒絕,保證柔性可用xYP28資訊網(wǎng)——每日最新資訊28at.com

● 容量規(guī)劃xYP28資訊網(wǎng)——每日最新資訊28at.com

● 分庫分表,讀寫分離,數(shù)據(jù)分片xYP28資訊網(wǎng)——每日最新資訊28at.com

案例:xYP28資訊網(wǎng)——每日最新資訊28at.com

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

Feed流系統(tǒng)分級(jí)緩存

讀多寫少、冷熱數(shù)據(jù)明顯,熱點(diǎn)數(shù)據(jù)緩存到調(diào)用鏈路更靠近用戶的地方xYP28資訊網(wǎng)——每日最新資訊28at.com

● L1緩存容量小負(fù)責(zé)抗最熱點(diǎn)的數(shù)據(jù), L2緩存考慮目標(biāo)是容量,緩存更大范圍的數(shù)據(jù)(一般用戶的timeline), 高熱點(diǎn),數(shù)據(jù)單獨(dú)緩存,比如設(shè)置白名單,大V 的用戶數(shù)據(jù)放在L1緩存xYP28資訊網(wǎng)——每日最新資訊28at.com

● feed(關(guān)注的feed 、topic 的feed,一些運(yùn)營的feed),前幾頁的訪問比例,前三頁占了90%+,針對(duì)這種業(yè)務(wù)特性,把 前面幾頁數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù)提到L1 cachexYP28資訊網(wǎng)——每日最新資訊28at.com

Feed系統(tǒng)消息發(fā)布Feed系統(tǒng)消息發(fā)布xYP28資訊網(wǎng)——每日最新資訊28at.com


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

寫擴(kuò)散 (PUSH)xYP28資訊網(wǎng)——每日最新資訊28at.com

● 推送策略:拆分?jǐn)?shù)據(jù)并行推,活躍用戶先推,非活躍用戶慢慢推xYP28資訊網(wǎng)——每日最新資訊28at.com

● 有 1w個(gè)用戶關(guān)注,發(fā)了一個(gè)feed,拆分成100份,每份100個(gè)并行推xYP28資訊網(wǎng)——每日最新資訊28at.com

● 1w個(gè)用戶里活躍的可能有2000個(gè),活躍用戶先推,非活躍用戶慢慢推,保證活躍用戶體驗(yàn),非活躍用戶推 了很大概率也不看xYP28資訊網(wǎng)——每日最新資訊28at.com

讀擴(kuò)散(PULL)xYP28資訊網(wǎng)——每日最新資訊28at.com

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

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

Feed系統(tǒng)存儲(chǔ)選型xYP28資訊網(wǎng)——每日最新資訊28at.com

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

本文鏈接:http://www.www897cc.com/showinfo-26-16297-0.html互聯(lián)網(wǎng)高并發(fā)設(shè)計(jì)的手段:架構(gòu)、算法、代碼

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

上一篇: C++“中年危機(jī)”有救了!C++之父新動(dòng)作!

下一篇: 基于Python+Django+協(xié)同過濾推薦算法實(shí)現(xiàn)的【電影推薦與管理系統(tǒng)】

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺(tái)競(jìng)技

    旗艦機(jī)基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據(jù)博主數(shù)碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • 6月iOS設(shè)備好評(píng)榜:第一蟬聯(lián)榜首近一年

    作為安兔兔各種榜單里變化最小的那個(gè),2023年6月的iOS好評(píng)榜和上個(gè)月相比沒有任何排名上的變化,僅僅是部分設(shè)備好評(píng)率的下降,長(zhǎng)年累月的用戶評(píng)價(jià)和逐漸退出市場(chǎng)的老款機(jī)器讓這
  • K8S | Service服務(wù)發(fā)現(xiàn)

    一、背景在微服務(wù)架構(gòu)中,這里以開發(fā)環(huán)境「Dev」為基礎(chǔ)來描述,在K8S集群中通常會(huì)開放:路由網(wǎng)關(guān)、注冊(cè)中心、配置中心等相關(guān)服務(wù),可以被集群外部訪問;圖片對(duì)于測(cè)試「Tes」環(huán)境或者
  • 多線程開發(fā)帶來的問題與解決方法

    使用多線程主要會(huì)帶來以下幾個(gè)問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結(jié)束訪問某一數(shù)據(jù)期間,該數(shù)據(jù)被其他的線程所修改,那么對(duì)于當(dāng)前線程而言,該線程
  • JavaScript學(xué)習(xí) -AES加密算法

    引言在當(dāng)今數(shù)字化時(shí)代,前端應(yīng)用程序扮演著重要角色,用戶的敏感數(shù)據(jù)經(jīng)常在前端進(jìn)行加密和解密操作。然而,這樣的操作在網(wǎng)絡(luò)傳輸和存儲(chǔ)中可能會(huì)受到惡意攻擊的威脅。為了確保數(shù)據(jù)
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時(shí)候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯(cuò),每天都在學(xué)習(xí),每天都在進(jìn)步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • 蘋果、三星、惠普等暫停向印度出口筆記本和平板電腦

    集微網(wǎng)消息,據(jù)彭博社報(bào)道,在8月3日印度突然禁止在沒有許可證的情況下向印度進(jìn)口電腦/平板及顯示器等產(chǎn)品后,蘋果、三星電子和惠普等大公司暫停向印度
  • DRAM存儲(chǔ)器10月價(jià)格下跌,NAND閃存本月價(jià)格與上月持平

    10月30日,據(jù)韓國媒體消息,自今年年初以來一直在上漲的 DRAM 存儲(chǔ)器的交易價(jià)格僅在本月就下跌了近 10%,此次是全年首次降價(jià),而NAND 閃存本月價(jià)格與上月持平。市
  • 北京:科技教育體驗(yàn)基地開始登記

      北京“科技館之城”科技教育體驗(yàn)基地登記和認(rèn)證工作日前啟動(dòng)。首批北京科技教育體驗(yàn)基地?cái)M于2023年全國科普日期間掛牌,后續(xù)還將開展常態(tài)化登記。  北京科技教育體驗(yàn)基
Top 主站蜘蛛池模板: 桂东县| 娄底市| 大荔县| 吴川市| 兰西县| 桐梓县| 垫江县| 罗城| 岐山县| 正阳县| 绥棱县| 隆回县| 昌平区| 陆川县| 霍城县| 吴川市| 惠来县| 巧家县| 文成县| 漳平市| 封开县| 伽师县| 滨海县| 都昌县| 溆浦县| 沂水县| 开封市| 常山县| 岫岩| 平凉市| 得荣县| 剑川县| 安义县| 青铜峡市| 囊谦县| 高密市| 万安县| 甘孜县| 历史| 西峡县| 任丘市|