我正在尋找一個在grails應用程序中自動數據庫故障轉移的解決方案。我有兩個數據庫駐留在通過WAN連接的兩個不同站點上。在站點A上,我們有數據庫01,它是數據庫駐留在同一站點上的應用程序的主數據庫,它是應用程序1,而它將作爲應用程序2的其他站點上的應用程序的輔助數據庫處理,反之亦然。Grails支持來處理數據源失敗
請參考下面的圖片瞭解更多詳情:
因此,根據上述設計:部署在站點A
- 申請應在站點A主要使用數據庫
- 如果以某種方式無法訪問站點A的數據庫,則在站點A部署的應用程序應該使用站點B的數據庫(作爲輔助數據庫)
- 一旦在網站數據庫中出現,部署在站點A的應用程序應該重新開始使用數據庫的站點A(作爲主數據庫)
以同樣的方式,它應該在站點B應用工作。對於站點B的應用程序,站點B的數據庫應主要(作爲主數據庫)和站點B的數據庫(作爲輔助數據庫)使用。
注意:當相應站點上的數據庫出現時,該站點(在其上部署該站點)的應用程序應該再次使用數據庫以避免在WAN上進行不必要的通信。
Grails是否提供了這樣的支持,我們可以指定兩個數據源之一作爲主數據源,另一個數據源作爲輔助數據源(只在primary不可訪問的情況下使用)。
並且如果沒有這樣的機制,那麼我們需要不斷檢查主數據源是否運行正常,否則請切換到次要數據源,這看起來不合適,而且不想要這個選項。