亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

服務器的高并發實例分析

發布時間:2022-01-12 21:32:30 來源:億速云 閱讀:144 作者:iii 欄目:開發技術

這篇文章主要介紹“服務器的高并發實例分析”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“服務器的高并發實例分析”文章能幫助大家解決問題。

大家都知道,高并發系統有三把斧子:緩存、熔斷和限流。但還有一把斧子,經常被遺忘在角落里,郁郁不得志,那就是預熱。

現象舉例

先說兩個現象。這些現象,只能在并發高的系統中出現。

好吧,它已經引起了多個故障。

一、DB重啟后,瞬間死亡

一個高并發環境下的DB,進程死亡后進行重啟。由于業務處在高峰期間,上游的負載均衡策略發生了重分配。剛剛啟動的DB瞬間接受了1/3的流量,然后load瘋狂飆升,直至再無響應。

原因就是:新啟動的DB,各種Cache并沒有準備完畢,系統狀態與正常運行時截然不同。可能平常1/10的量,就能夠把它帶入死亡。

二、服務重啟后,訪問異常

另外一個常見的問題是:我的一臺服務器發生了問題,由于負載均衡的作用,剩下的機器立馬承載了這些請求,運行的很好。當服務重新加入集群時,卻發生了大量高耗時的請求,在請求量高的情況下,甚至大批大批的失敗。

引起的原因大概可以歸結于:

1、服務啟動后,jvm并未完全準備完畢,JIT未編譯等。

2、應用程序使用的各種資源未準備就緒。

3、負載均衡發生了rebalance。

這兩個問題,都是沒有做好預熱

Warm  Up,即冷啟動/預熱的方式。當系統長期處于低水位的情況下,流量突然增加時,直接把系統拉升到高水位可能瞬間把系統壓垮。通過”冷啟動”,讓通過的流量緩慢增加,在一定時間內逐漸增加到閾值上限,給冷系統一個預熱的時間,避免冷系統被壓垮。

我想要這樣的曲線。

服務器的高并發實例分析

而不是這樣的。

服務器的高并發實例分析

事實要復雜的多

流量是不可預測的,這不同于自然增長的流量,或者人為的攻擊——這是一個從無到有的過程。甚至一些自詡超高速的組件,如lmax的disruptor,在這種突然到來的洪峰之下也會崩潰。

warmup最合適的切入層面就是網關。如圖:node4是剛啟動的節點,集成在網關中的負載均衡組件,將能夠識別出這臺剛加入的實例,然后逐步放量到這臺機器,直到它能夠真正承受高速流量。

服務器的高并發實例分析

假如所有的請求,都經過網關,一切都好辦的多,也有像Sentinel 之類的組件進行切入。但現實情況往往不能滿足條件。比如:

1、你的應用直接獲取了注冊中心的信息,然后在客戶端組件中進行了流量分配。

2、你的應用通過了一些復雜的中間件和路由規則,最終定位到某一臺DB上。

3、你的終端,可能通過了MQTT協議,直接連上了MQTT服務端。

我們進行一下抽象,可以看到:所有這些流量分配邏輯,包括網關,都可以叫做客戶端。即所有的warmup邏輯都是放在客戶端的,它們都與負載均衡緊密耦合在一起。

解決方式

接口放量

按照以上的分析,通過編碼手段控制住所有的客戶端調用,即可解決問題。

一個簡單的輪詢方式

1、我要能拿到所有要調用資源的集合,以及啟動時間,冷啟動的配置等。

2、給這些資源分配一些權重,比如最大權重為100,配置100秒之后冷啟動成功。假如現在是第15秒,則總權重就是100*(n-1)+15。

3、根據算好的權重,進行分配,流量會根據時間流逝逐步增加,直到與其他節點等同。

4、一個極端情況,我的后端只有1個實例,根本就啟動不起來。

拿SpringCloud來說,我們就要改變這些組件的行為。

1、ribbon的負載均衡策略。

2、網關的負載均衡策略。

還好,它們都是基礎組件,不用來回拷貝代碼了。

走馬觀花

顧名思義,意思就是把所有的接口都提前訪問一遍,讓系統對資源進行提前準備。

比如,遍歷所有的http連接,然后發送請求。

這種方法是部分有效的,一些懶加載的資源會在這個階段陸續加載進來,但不是全部。

JIT等一些增強功能,可能使得預熱過程變得非常的長,走馬觀花的方式,只能在一定程度上有作用。

再比如某些DB,在啟動之后,會執行一些非常有特點的sql,使得PageCache里加載到最需要的熱數據。

狀態保留

系統在死亡時做一個快照,然后在啟動時,原封不動的還原回來。

這個過程就比較魔幻了,因為一般的非正常關閉,系統根本沒有機會發表遺言,所以只能定時的,在運行中的系統中做快照。

節點在啟動時,再將快照加載到內存中。這在一些內存型的組件中應用廣泛。

通過比較,我們發現,最靠譜的方式還是進行編碼,將warmup邏輯集成在客戶端。這個工作可能是痛苦的、漫長的,但結局是美好的。

當然也可以通過“摘除nginx->修改權重->reload nginx”的方式。有時很有效但不總是有效,通常很放心但不總是放心。

關于“服務器的高并發實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郯城县| 鄂尔多斯市| 托里县| 昌黎县| 安阳县| 隆昌县| 张家口市| 汽车| 镇巴县| 资阳市| 民丰县| 偏关县| 托克托县| 武山县| 孟连| 渝中区| 新乡市| 彭水| 宁安市| 吐鲁番市| 安丘市| 芒康县| 土默特右旗| 泗水县| 五指山市| 长治县| 南皮县| 赤峰市| 包头市| 北宁市| 阿荣旗| 玉田县| 合山市| 南昌市| 绍兴县| 克什克腾旗| 岫岩| 当阳市| 左权县| 郑州市| 大连市|