簡體   English   中英

Grails支持處理數據源故障

[英]Grails Support to Handle Datasource Failure

我正在尋找grails應用程序中的自動數據庫故障轉移的解決方案。 我有兩個數據庫,它們位於通過WAN連接的兩個不同站點上。 在站點A上,我們有數據庫01,它是數據庫所在的同一站點上的應用程序的主數據庫,它是應用程序1,而它將被視為應用程序2的其他站點上的應用程序的輔助數據庫,反之亦然。

有關詳細信息,請參閱下圖:

期望的數據庫復制和故障轉移設計

所以,根據上面描述的設計:

  • 站點A上部署的應用程序應主要使用站點A的數據庫
  • 如果站點A的某個數據庫無法訪問,則站點A部署的應用程序應使用站點B的數據庫(作為輔助數據庫)
  • 一旦站點A上的數據庫出現,站點A上部署的應用程序應該再次開始使用站點A的數據庫(作為主數據庫)

同樣,它應該適用於站點B的應用程序。對於站點B的應用程序,站點B的數據庫應主要(作為主數據庫)和站點B的數據庫(作為輔助數據庫)使用。

注意:當相應站點上的數據庫出現時,該站點(部署它)的應用程序應該再次開始使用數據庫,以避免通過WAN進行不必要的通信。

grails是否提供任何此類支持,我們可以指定兩個數據源,一個作為主要數據源,另一個作為輔助數據源(僅在主要數據庫無法訪問的情況下使用)。

如果沒有這樣的機制,那么我們需要不斷檢查主數據源是否正常運行,否則切換到輔助數據源,這似乎是不合適的,並且不想使用此選項。

真正的答案是不要讓你的任何類型的代碼處理這個,而是實現一個負載平衡器,它將相應地路由流量。 雖然你可以在你自己的代碼(理論上)中做到這一點,但是你提出的任何解決方案都遠遠不能達到實際負載平衡器能夠實現的故障轉移。

為了回答你的問題,Grails沒有任何解決這個問題的方法。 應該在應用程序之外解決此問題,而應將其作為網絡/基礎架構拓撲設計/實現的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM