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