簡體   English   中英

如何創建ASP.NET Web場?

[英]How to create an ASP.NET web farm?

我正在尋找有關如何創建ASP.NET Web場的信息 - 也就是說,如何使ASP.NET應用程序(最初設計為在單個Web服務器上工作)在2,3,10等服務器上運行?

我們創建了一個Web應用程序,當時有500個用戶同時工作正常。 但現在我們需要讓它適用於10 000個用戶(同時使用Web應用程序)。

因此,我們需要設置20個Web服務器,並通過在其Web瀏覽器中鍵入“www.MyWebApp.ru”來使10 000個用戶可以使用Web應用程序,盡管他們的請求將由20個Web服務器處理,他們知道這一點。

1)是否有特殊的標准軟件來創建ASP.NET Web場

2)或者我們是否應該通過手動 (使用ASP.NET / C#)在不同Web服務器之間傳輸請求來自己創建Web場

我發現很少有關於ASP.NET Web場的信息和Web上的可伸縮性:在大多數情況下,有關可伸縮性的文章講述了如何優化ASP.NET應用程序並使其運行得更快。 但我沒有找到在2個Web服務器上運行的“Hello world”類ASP.NET Web應用程序的示例。

如果有人可以發布文章的鏈接,或者更好地講述自己在ASP.NET“web耕作”中的經驗並解決可擴展性問題,那將會很棒。

謝謝你,米哈伊爾。

1)是否有特殊的標准軟件來創建ASP.NET Web場?

沒有。

2)或者我們是否應該通過手動(使用ASP.NET / C#)在不同Web服務器之間傳輸請求來自己創建Web場?

沒有。

要構建Web場,您需要某種形式的負載平衡。 對於最多8台服務器,您可以使用內置於Windows的網絡負載平衡(NLB)。 對於8台以上的服務器,您應該使用硬件負載平衡器。

然而,負載平衡實際上只是冰山一角。 還有許多其他問題需要解決,包括:

  1. 狀態管理(cookie,ViewState,會話狀態等)
  2. 緩存和緩存失效
  3. 數據庫加載(管理往返,分區,磁盤子系統等)
  4. 應用程序池管理(WSRM,池重置,分區)
  5. 部署
  6. 監控

如果它可能有用,我在本書中討論了許多這些問題: Ultra-Fast ASP.NET:使用ASP.NET和SQL Server構建超快速和超可擴展的Web站點

我要說你應該配置一個NLB集群(網絡負載平衡),它基本上可以在集群節點之間拆分所有請求(並且附加的好處是檢測事情是否已關閉並停止發送請求)。 Windows中內置了這些功能,但它們與硬件設備的性能或可擴展性無法比較。 如果你使用的是Windows 2008,那么設置它真的很簡單。 如果這樣做,請確保您擁有共享計算機密鑰,或者您將開始獲取視圖狀態無效的異常(當1個服務器提交表單並且它發布到另一個並且他們使用不同的密鑰對數據進行編碼時)。

您也可以使用DNS循環法,但在20個服務器上,大概在1個數據中心,我不會看到這樣瘋狂的長度。 如果您有多個數據中心,雖然這絕對值得考慮(因為NLB在數據中心之間不會很好地工作)。

您還需要確定用戶是否交換了服務器,而不會丟失會話。 最簡單的方法是使用會話狀態數據庫(在web.config中可配置,或者您可以在IIS的配置中在服務器范圍內執行此操作)。 如果您不使用會話,只需在web.config的Pages指令中關閉它們並將其稱為一天。 您也可以使用會話狀態服務器,但我對此沒有任何經驗。

考慮花一些時間優化代碼或將緩存指令添加到靜態內容也是值得考慮的 - 即使您只需要減少一些服務器的需求,它也可能非常划算。

希望有所幫助。

如果你的服務器保持無狀態,那么很好的路由器可以實現一些循環Robbin協議(將每個調用發送到單個已發布服務器的ip到不同的Web服務器)。

如果它不是無狀態的(比如 - 如果需要登錄,或ssl),則需要將每個會話保持在同一服務器上。

以下是有關MS應用程序請求路由的一些信息 - 您將獲得所有內容:

IIS負載平衡

我不建議#2。 使用負載均衡器可以做得更好。

注意會話狀態管理。 除非您將負載均衡器配置為使每個用戶保持在同一Web服務器上,否則您將必須使用會話狀態服務器或數據庫。

另外,檢查代碼對Application和Cache變量的使用情況。 這些在每個Web服務器上都是不同的。 如果這些值是靜態的,則可能沒有問題。 但是,如果它們可以更改,您可以在每個Web服務器上獲得不同的值。

這里解釋了1.x中ViewState的問題。 我不確定這個問題是否仍然存在。

然后,有一些你需要在web.config中的計算機密鑰,作為解釋的變化在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM