Sql-Server
IIS/ASP.Net/SQL Server 上的負載平衡/集群
我必須為未來的 ASP.NET 應用程序創建一個報價。他們想要高可用性(99.9%+)。
因此,我正在尋找使用 .Net 技術(asp.net mvc 3、IIS 7、SQL Server 2008 R2)的最佳解決方案,以確保這種可用性。
所以:
- 有沒有辦法在 IIS 伺服器上進行一些集群?
- 使用 SQL Server 確保這種可用性的方法是什麼?在兩台伺服器之間複製數據(我已經知道這樣做)+如果第一台伺服器不可用(不知道這樣做),則切換到第二台伺服器,或者有沒有辦法直接聲明一個數據庫集群和每個 sql指令寫在兩個或多個數據庫中?
另一個目標是,如果我有兩個 IIS 伺服器和兩個 SQL Server,通過使用一些負載平衡來提高性能。這可能嗎?
非常感謝您的建議/連結
對於 SQL Server,從這裡開始:高可用性解決方案概述。請特別注意有關故障轉移群集的部分,這聽起來像是您正在尋找的解決方案。
IIS 支持故障轉移群集(也稱為伺服器群集)和 NLB,或網路負載平衡——這顯然不是一回事。
故障轉移集群在 IP 級別上工作,並在主伺服器關閉或不可用超過一毫秒左右時替代熱備用。
雖然檢測速度非常快,但增加特定的備用伺服器可能不會;對於 SQL 伺服器,啟動故障轉移伺服器將需要 30-60 秒。
另一方面,IIS NLB 絕對不是多餘的——它只是讓 2 台或更多台伺服器處理相同的工作負載,並根據確定性算法決定哪台伺服器處理特定請求。這可能會或可能不會對基於會話的應用程序造成嚴重破壞,以及什麼不是,如果其中一個伺服器發生故障,它的請求將簡單地得不到答复。
基於 VIP 的硬體負載平衡通常比這更可取。
對於 SQL 伺服器,最快和最可用的解決方案是數據庫鏡像——儘管這發生在數據庫級別並且不會自動保護整個 SQL 實例。
由於您表示您將為此獲得報酬,因此我建議您熟悉可用的各種技術和策略 - 這些不是初學者主題。