2012-04-08 91 views
0

我有一個寫入和讀取數據庫應用程序持有本地緩存​​。如果應用程序服務器發生故障,備份服務器應開始工作。數據庫應用程序的故障轉移策略

主要和備份應用程序只能運行,因爲它的本地緩存和數據庫上的一些低隔離級別。

就我的通信知識而言,不可能讓兩臺服務器總是找出誰可以獨佔運行。

我可以以某種方式通過將數據庫用作第三個實體來解決此通信衝突嗎?我認爲這是一個非常典型的問題,可能沒有100%安全的方法,但我很樂意知道其他人如何推薦解決此類問題?或者如果有一些最佳做法。

如果兩個應用程序都不能工作30分鐘左右,但沒有足夠的時間讓人們起牀並讓他們弄清楚問題所在。

+0

這實際上並不像您想象的那樣常見,因爲應用程序服務器被設計爲集羣和水平擴展,其中單個節點的故障是透明且無關緊要的。另一方面,數據庫服務器通常會以您描述的方式進行故障修復,原因很明顯。 – 2012-04-08 17:22:59

+0

謝謝,應用程序服務器可能是「錯誤」的術語。它是一個獨立的服務器,運行一個與數據庫緊密連接的應用程序,這種應用程序是數據庫的一個長臂,而且根本不是爲了擴展而設計的。 – 2012-04-08 17:29:41

回答

1

您可以設置第三臺服務器來監視兩個應用程序服務器的運行狀況嗎?如果其中一臺服務器似乎消失,此服務器可以做出適當的決定:指示熱備用服務器開始處理。

0

如果我得到正確的圖片,您的備份服務器不斷輪詢主服務器的數據更新,它不會很難檢查輪詢是否失敗,在30秒後再次調度3次,並在第三次失敗時動態將DNS條目更新到數據庫服務器以反映活動服務器中的更改。 Windows DNS和Bind都接受已簽名和未簽名的動態更新。

相關問題