Failover

即使 Windows 本身正在工作,Windows 集群能否對自定義 TCP Server 應用程序進行故障轉移?

  • October 9, 2012

我開發了一個偵聽特定埠的 TCP 伺服器應用程序。我的一位使用者詢問我的應用程序是否可以在主動-主動 Windows 2008 Enterprise 集群上執行。在 Windows 集群方面幾乎沒有經驗,我用Google搜尋並知道故障轉移適用於 IIS 和 SQL Server 等 Microsoft 應用程序,但我想知道是否同樣適用於自定義 TCP 應用程序。

首先,我知道客戶端將連接到虛擬 IP 地址而不是節點的物理 IP 地址,並且如果特定節點關閉,Windows 集群將自動將任何連接請求重定向到另一個節點。

但是,只有我的 TCP 伺服器應用程序掛起並停止響應(但 Windows 仍在工作)的情況下,故障轉移仍然有效嗎?如果出現嚴重的應用程序故障,我可能還有意拒絕客戶端連接。

我將不勝感激任何指針,謝謝。

是的,您可以在 Windows 集群中設置您的自定義應用程序。但是,這不是您的使用者所要求的。Windows 群集不是主動/主動群集配置。Windows 集群只支持故障轉移,不支持橫向擴展。對於服務同時在多個伺服器上執行的橫向擴展解決方案,這需要在應用程序前面使用某種負載平衡器,它將請求路由到執行軟體應用程序的伺服器之一。負載均衡器可以是Cisco、F5等硬體負載均衡器,也可以是Windows Load Balancer服務等軟體包。

說了這麼多…

如果您確實在 Windows 集群中安裝了應用程序,它將一直在同一台物理機器上執行,直到軟體崩潰,此時 Windows 集群將嘗試在同一台機器上重新啟動它,或者將其移動到集群中的另一台機器上取決於你如何配置它。Windows 集群服務不會監控您的軟體正在做什麼,您的軟體可能整天拒絕會話,Windows 集群會認為這是完全正常的。

引用自:https://serverfault.com/questions/436512