2011-05-14 68 views
0

我有一個java服務器爲多個使用套接字的客戶端提供服務 如果主服務器出現故障,我希望後臺服務器接管automaticaly。 我所做的是,我把IP地址和備份服務器的端口放在客戶端,當發生超時時,我只連接到備份服務器。 這是正確的決定,還是我應該把服務器端的備份服務器座標,並在連接時將其傳輸到客戶端?客戶端 - 服務器架構中的容錯

感謝

回答

1

讓服務器發送備份地址給客戶端是一個好主意,集中管理這些數據會更容易。

但是,備份服務器地址也應位於客戶端上的屬性文件中(或由客戶端和服務器讀取的中央配置數據庫中),否則在主服務器關閉時啓動時無法找到備份。

+0

感謝接受者 – outellou 2011-05-14 22:22:52

+0

這個想法似乎很簡單,但在真實世界的雲應用程序中並不是非常有效。在AWS等雲基礎架構中,出於某種原因,任何服務器都可能關閉,同時另一臺服務器可以通過自動重新配置進行在線連接。在這種情況下,您的備份服務器可能會關閉,您的客戶無法知道這一點。所以最好在服務器端自己處理這個服務器分配。客戶不應該很難維護服務器信息並連接到它們。 – coderx 2017-02-11 05:39:45

1

我想這將是更強大的存儲服務器上的備份服務器信息 - 這樣,它可以更容易地改變。如果客戶端切換到備份,備份可能會公佈其它的備份是

也可以使用硬件負載均衡器來處理這個問題,儘管這對無連接協議來說更容易。不過,使用硬件可以讓主服務器關閉時備份機自動進入,這當然更簡單。