欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

自己如何實際接觸高并發項目

吉茹定2年前20瀏覽0評論

自己如何實際接觸高并發項目?

如果你是一個工作剛不久的巨嬰,那么首先,不要急于學習大型網站的架構設計,此時此刻做任何項目都可以學到很多東西,并發量不高的項目你可以多學習學習代碼設計,要是工作不那么忙你還可以在公司學習。任何產品不可能一開始的時候就是高并發架構。但是我們要時刻準備好迎接大流量。如果你確實希望能夠直接接觸高并發項目,那也不是不可以。我給你一個實際操作的思路。首先你需要了解jmeter工具,高并發的項目通常會用它來進行并發測試。并發我們通常會分為兩種,一種是讀并發,一種是寫并發。

模擬讀并發第一階段:正常情況下,我們編寫一個接口都是直接訪問數據庫獲取數據,那這樣肯定是占用數據庫連接的,所以并發數不會很高。第二階段:我們為數據添加緩存,訪問時我們先訪問緩存,比如redis,如果緩存中沒有數據我們再從數據庫中讀取,這里就會涉及到緩存雪崩和穿透的問題。這些問題咱們可以忽略不計,因為解決辦法很簡單,而且有很多種。添加緩存就減少了數據庫壓力,更重要的是我們增加了請求的IOPS(吞吐量),也就意味著我們的服務器一秒鐘可以處理更多的請求,也就提高了并發量。第三階段:當我們的緩存處理的IOPS比我們的服務器最高支持的并發數還高,比如Tomcat優化的好的話可以有1.5k左右(有人說可以達到6k),不過我覺得這個跟你機器的內存和tomcat的配置有關,咱們暫且假定是1.5k。如果你要超過1.5k的并發,那么此時你就需要增加服務器或者換一種并發量更高的服務器。我們以增加服務器為例,你可以添加1臺服務器來支持更高的并發,然后通過nginx進行負載均衡,將流量分配到兩臺tomcat中。我們知道nginx的最高并發可以達到3W,也就是意味著你可以添加20臺tomcat。第四階段:當nginx成為了我們的并發瓶頸,我們就要做nginx集群了。這也意味著我們需要將一個地區劃分成多個小地區,每個地區配置一個公網nginx。而這種做法有兩種,一種是通過網絡路由層增加控制來實現分發,一種是通過硬件來實現,硬件的我沒操作過,自己實踐也不實際,因為很貴!

當然,我們并不能直接通過增加最高并發量就能處理并發,比如數據庫層面中途我們就需要改成主從機制,采用分庫分表或者使用mongodb這種高吞吐量的數據庫來做。比如我們的機器配置也需要增加等。

模擬寫并發

寫并發跟讀并發的區別主要在于寫的時間往往比較長,讀的時間我們通過緩存來提高,但寫庫這個動作我們并不能通過緩存來處理,此時就需要我們增加消息隊列MQ,最終走向MQ的集群。增加MQ以后我們的請求只是把寫庫這項任務添加到隊列中,然后一條一條地執行,但是用戶發起的請求我們立即返回成功標志。這樣可以不占用服務線程。也就提高了并發量,同時也需要修改我們的業務,比如正常下單是訂單入庫后返回成功,并發量上來后我們就需要調整為訂單加入隊列后成功,并沒有入庫,那么此時不能告訴用戶下單成功,而是提醒用戶正在下單,然后前端每1秒鐘去查詢訂單看是否存在,如果存在再提示下單成功。

最后

總的來說,我們知道了一套高并發的常見處理方式和原理,我們就可以自己去模擬一下。講真的在公司基本學不到啥東西,一般都是靠自己做項目來完成一些自己想要的效果或者自己想實踐的技術和經驗。我自己就開發了一個代碼開發平臺,你也可以了解一下,叫懶猴子CG。前端用的nuxt,后端用的springboot,基本都不怎么架構,但是從前端到后端基本都是我一個人開發的,所以還是會學到很多東西。即使流量大了,我也有辦法撐起來,這就是自己做項目去實踐的一個好處,可以經歷一下從無到有的整個過程。

祝你順利!

java 多線程 分發,自己如何實際接觸高并發項目