您好,登錄后才能下訂單哦!
本篇文章為大家展示了 C#中怎么實現(xiàn)分布式負(fù)載均衡,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
假如想要進(jìn)行負(fù)載平衡,實際上建議直接購買云服務(wù)或硬件設(shè)備,這樣基本上不需要進(jìn)行任何配置和學(xué)習(xí)就可以很容易地進(jìn)行負(fù)載平衡。別跟風(fēng)各種反代 nginx,說白了有錢人買設(shè)備比自己鼓吹靠譜多了,沒錢買設(shè)備用云服務(wù)也很劃算。
在進(jìn)行負(fù)載均衡之前,最重要的一點是,您的網(wǎng)站應(yīng)用是否已準(zhǔn)備好進(jìn)行負(fù)載均衡,比方說,您是否已進(jìn)行 Sessionless,請求處理時間是否均勻(在某些情況下,幾秒鐘處理一個請求?是否在代碼中存在依賴全局鎖(static對象上的鎖)。
如果以上幾點沒有做好,比如嚴(yán)重的Session依賴,幾十秒的請求處理時間長,一秒幾百的處理時間短,代碼中各種靜態(tài)非線程安全的共享資源。建議你先重構(gòu)系統(tǒng),再考慮負(fù)載均衡。
做負(fù)載均衡,一般來說,剛開始已經(jīng)做了一些工作,最基本的就是去除Session依賴,避免全局鎖。然后配置機(jī)器密鑰。如果無法釋放會話相關(guān)性,則使用狀態(tài)服務(wù)器模式。當(dāng)然,直接釋放Session依賴更好。
然后就是考驗。IIS的WebFarm可以使用多個進(jìn)程來處理請求,但是因為是在一臺機(jī)器上測試,所以很多情況無法測試(比如machineKey不一致導(dǎo)致的問題)。
現(xiàn)在真的是一個非常好的時機(jī),因為云計算已經(jīng)非常成熟,所以負(fù)載均衡測試可以直接扔到云上去測試。如果您購買作為按需實例,您可能會購買幾個最便宜的虛擬機(jī),然后使用云負(fù)載平衡測試。經(jīng)過一周的測試,要花兩三百塊錢才能上。這個測試和實際情況幾乎沒有區(qū)別。如果將來部署在云上,根本沒有區(qū)別。
經(jīng)過云測試,基本確定系統(tǒng)能夠在負(fù)載均衡環(huán)境下穩(wěn)定運(yùn)行。此時可以對一些高度懷疑可能出現(xiàn)問題的地方進(jìn)行補(bǔ)充測試,比如回發(fā)到不同的服務(wù)器,登錄和注銷到不同的服務(wù)器等等。這時可以直接打開Fiddler override去掉DNS解析,手動指定服務(wù)器測試各種可能出錯的場景。
這些都完成之后,就可以進(jìn)行壓力測試了,有些問題只有在壓力下才會暴露出來。同時,我們可以測試當(dāng)增加負(fù)載節(jié)點時,壓力閾值是否可以線性增加。如果不是線性增長,說明網(wǎng)站架構(gòu)有問題,不能很好的利用負(fù)載均衡。
完成所有這些之后,有必要在將負(fù)載平衡器部署到生產(chǎn)環(huán)境之前對其進(jìn)行監(jiān)控和測試。也就是說,確認(rèn)負(fù)載均衡器可以自動發(fā)現(xiàn)節(jié)點故障,自動遷移節(jié)點。高級負(fù)載平衡器還可以根據(jù)節(jié)點負(fù)載情況動態(tài)分配請求,盡可能將同一客戶端的請求分配給同一服務(wù)器。這些都是需要測試的,而不是發(fā)現(xiàn)各種設(shè)備都是在線服務(wù)器掛機(jī)后才配置的。
完成之后可以進(jìn)行壓力測試,一些問題在壓力下暴露出來。另外,還可以測試增加負(fù)載節(jié)點時所能承受的壓力閾值是否線性增長,如果不是,說明一個網(wǎng)站架構(gòu)不能很好地利用負(fù)載均衡。
上述內(nèi)容就是 C#中怎么實現(xiàn)分布式負(fù)載均衡,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。