日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java 大流量高并发_【BAT面试题】如何应对大流量、高并发??

發(fā)布時(shí)間:2024/8/23 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 大流量高并发_【BAT面试题】如何应对大流量、高并发?? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這是一道BAT大廠的面試題

所謂高并發(fā)指的是:在同時(shí)或極短時(shí)間內(nèi),有大量的請(qǐng)求到達(dá)服務(wù)端,每個(gè)請(qǐng)求都需要服務(wù)端耗費(fèi)資源進(jìn)行處理,并做出相應(yīng)的反饋。

常用的高并發(fā)處理的思路與手段

從服務(wù)端視角看高并發(fā)

服務(wù)端處理請(qǐng)求需要耗費(fèi)服務(wù)端的資源,比如能同時(shí)開(kāi)啟的進(jìn)程數(shù)、能同時(shí)運(yùn)行的線程數(shù)、網(wǎng)絡(luò)連接數(shù)、cpu、I/O、內(nèi)存等等,由于服務(wù)端資源是有限的,那么服務(wù)端能同時(shí)處理的請(qǐng)求也是有限的。高并發(fā)問(wèn)題的本質(zhì)就是:資源的有限性

高并發(fā)帶來(lái)的問(wèn)題

服務(wù)端的處理和響應(yīng)會(huì)越來(lái)越慢,甚至?xí)G棄部分請(qǐng)求不予處理,更嚴(yán)重的會(huì)導(dǎo)致服務(wù)端崩潰。

高并發(fā)處理的基本思路

1)從客戶端看

盡量減少請(qǐng)求數(shù)量,比如:依靠客戶端自身的緩存或處理能力

盡量減少對(duì)服務(wù)端資源的不必要耗費(fèi),比如:重復(fù)使用某些資源,如連接池客戶端處理的基本原則就是:能不訪問(wèn)服務(wù)端就不要訪問(wèn)

2)從服務(wù)端看

增加資源供給,比如:更大的網(wǎng)絡(luò)帶寬,使用更高配置的服務(wù)器,使用高性能的Web服務(wù)器,使用高性能的數(shù)據(jù)庫(kù)

請(qǐng)求分流,比如:使用集群,分布式的系統(tǒng)架構(gòu)

應(yīng)用優(yōu)化,比如:使用更高效的編程語(yǔ)言,優(yōu)化處理業(yè)務(wù)邏輯的算法,優(yōu)化訪問(wèn)數(shù)據(jù)庫(kù)的SQL

基本原則:分而治之,并提高單個(gè)請(qǐng)求的處理速度

高并發(fā)處理的基本手段

1)客戶端發(fā)出請(qǐng)求層面,常見(jiàn)的手段有:

盡量利用瀏覽器的緩存功能,減少訪問(wèn)服務(wù)端,比如:js、css、圖片等

可以考慮使用壓縮傳輸?shù)墓δ?#xff0c;減少網(wǎng)絡(luò)流量,也會(huì)提高傳輸速度

考慮使用異步請(qǐng)求,分批獲取數(shù)據(jù)

2)前端接收客戶端請(qǐng)求層面,常見(jiàn)的手段有:

動(dòng)靜分離,部分靜態(tài)資源可以直接從Nginx返回

按請(qǐng)求的不同,分發(fā)到不同的后端進(jìn)行處理,比如:負(fù)載均衡、業(yè)務(wù)拆分訪問(wèn)等

前面再加上一層來(lái)做多個(gè)Nginx的負(fù)載均衡,比如:LVS、F5等

還可以在更前面使用CDN服務(wù)

還可以對(duì)動(dòng)態(tài)內(nèi)容進(jìn)行緩存,盡量減少訪問(wèn)后端服務(wù)

3)Web服務(wù)器層面,常見(jiàn)的手段有:

使用最新的JVM,并進(jìn)行配置優(yōu)化

對(duì)Web服務(wù)器進(jìn)行配置優(yōu)化,比如:調(diào)整內(nèi)存數(shù)量、線程數(shù)量等

提供多個(gè)能提供相同服務(wù)的Web服務(wù)器,以實(shí)現(xiàn)負(fù)載均衡

仔細(xì)規(guī)劃Web服務(wù)器上部署的應(yīng)用規(guī)模

對(duì)Web服務(wù)器進(jìn)行集群

4)Web應(yīng)用層面,常見(jiàn)的手段有:

動(dòng)態(tài)內(nèi)容靜態(tài)化

Java開(kāi)發(fā)優(yōu)化

優(yōu)化處理業(yè)務(wù)邏輯的算法

合理高效的利用緩存

優(yōu)化訪問(wèn)數(shù)據(jù)庫(kù)的Sql,可以考慮利用存儲(chǔ)過(guò)程等數(shù)據(jù)庫(kù)的能力

合理使用多線程,加快業(yè)務(wù)處理

部分業(yè)務(wù)可以考慮內(nèi)存數(shù)據(jù)庫(kù),或者是進(jìn)行純內(nèi)存處理

盡量避免遠(yuǎn)程調(diào)用、大量I/O等耗時(shí)的操作

合理規(guī)劃事務(wù)等較為耗資源的操作

合理使用異步處理

對(duì)部分業(yè)務(wù)考慮采用預(yù)處理或者預(yù)計(jì)算的方式,減少實(shí)時(shí)計(jì)算量

內(nèi)部系統(tǒng)間的業(yè)務(wù)盡量直接調(diào)用、直接處理,減少WebService、工作流等

5)數(shù)據(jù)庫(kù)層面,常見(jiàn)的手段有:

合理選擇數(shù)據(jù)庫(kù)的引擎,比如Mysql的InnoDB與MyISAM引擎

進(jìn)行配置優(yōu)化

可以考慮使用存儲(chǔ)過(guò)程來(lái)處理復(fù)雜的數(shù)據(jù)邏輯

數(shù)據(jù)庫(kù)集群,進(jìn)行讀寫(xiě)分離

合理設(shè)計(jì)數(shù)據(jù)庫(kù)的表結(jié)構(gòu)、索引等

分庫(kù)、分表,降低單庫(kù)、單表的數(shù)據(jù)量

如有錯(cuò)誤或其它問(wèn)題,歡迎小伙伴留言評(píng)論、指正。如有幫助,歡迎點(diǎn)贊+轉(zhuǎn)發(fā)分享。

歡迎大家關(guān)注民工哥的公眾號(hào):民工哥技術(shù)之路

關(guān)于找一找教程網(wǎng)

本站文章僅代表作者觀點(diǎn),不代表本站立場(chǎng),所有文章非營(yíng)利性免費(fèi)分享。

本站提供了軟件編程、網(wǎng)站開(kāi)發(fā)技術(shù)、服務(wù)器運(yùn)維、人工智能等等IT技術(shù)文章,希望廣大程序員努力學(xué)習(xí),讓我們用科技改變世界。

[【BAT面試題】如何應(yīng)對(duì)大流量、高并發(fā)??]http://www.zyiz.net/tech/detail-139632.html

總結(jié)

以上是生活随笔為你收集整理的java 大流量高并发_【BAT面试题】如何应对大流量、高并发??的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。